stm8单片机

[复制链接]
查看11 | 回复2 | 2010-12-14 11:06:21 | 显示全部楼层 |阅读模式
有懂STM8单片机的嘛,帮帮忙嘛,我想用PA3作外部中断,设置是:
PA_DDR |= 0x00;//输入
PA_CR1 |= 0xff;//上拉
PA_CR2= 0x02; //输入口,PA2中断
EXTI_CR1=0B00000010;//端口A 下降沿触发,
然后:
@far @interrupt void EXTI0_interrupt(void)//中断处理
{
...........
}
@far @interrupt void Noninterrupt (void)
{
/* in order to detect unexpected events during development,

it is recommended to set a breakpoint on the following instruction
*/
return;
}
struct interrupt_vector const _vectab[] = {
{0x82, (interrupt_handler_t)_stext}, /* reset */
{0x82, Noninterrupt}, /* trap*/
{0x82, Noninterrupt}, /* irq0*/
{0x82, Noninterrupt}, /* irq1*/
{0x82, EXTI0_interrupt}, /* irq2*///外部中断 口A
{0x82, Noninterrupt}, /* irq3*/
..............
.............
问题是这样做后载现并不能进入中断,请问问题出在哪里呢?正确的方法又是什么呢?
没分了,谢谢!拜托了!

回复

使用道具 举报

千问 | 2010-12-14 11:06:21 | 显示全部楼层
我前段时间刚搞过STM8,现在在搞STM32,如果你有51的基础STM8应该是很容易的,STM8跟AVR是很象的,同样要用IO口的是候要先初始化IO口,建议看一下《STM8S技术参考手册V4.pdf》主要了解个寄存器的作用!然后看一下STM8的库函数,了解一下就可以开始编程了!我这里给一个点亮一个灯的程序给你参考:#define LEDS_PORT (GPIOH)#define LED1_PIN(GPIO_PIN_3)void main(void){GPIO_Init(LEDS_PORT,LED1_PIN ,GPIO_MODE_OUT_PP_LOW_FAST);while (1){
GPIO_Wri
回复

使用道具 举报

千问 | 2010-12-14 11:06:21 | 显示全部楼层
asm("rim"); IAR的使能中断
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行