最近的产品要用到AVR,所以抽点时间出来学习一下,不知道是不在倒退,现在才开始学AVR.不管那么多了。前段时间做USBASp用了一下m8,具体没有看代码,今天搞中断,搞了一天,总算是能运行了。开发环境不一样,中断写法也是不一样的,刚开始学什么都不懂,自己一个人慢慢摸索,很费事。WINAVR开发环境
ISR(INT0_vect) //INT0中断服务程序
{
//用户代码
LED0_ON(); //点亮LED0
}
ISR(INT1_vect) //INT1中断服务程序
{
LED0_OFF(); //点亮LED1
}
INT0_vect是在对应器件的头文件中定义的,比如iom8.h,iom16.h等
/* External Interrupt Request 0 */
#define INT0_vect _VECTOR(1)
#define SIG_INTERRUPT0 _VECTOR(1)
其他的也就没有什么了,初始化相应的寄存器就没有问题了
MCUCR=(1<<ISC11)|(0<<ISC10)|(1<<ISC01)|(0<<ISC00);
GIFR=(1<<INTF1)|(1<<INTF0)|(1<<INTF2);
GICR=(1<<INT1)|(1<<INT0)|(1<<INT2);
sei();
文章评论(0条评论)
登录后参与讨论