欢迎来到天天文库
浏览记录
ID:23975314
大小:35.00 KB
页数:3页
时间:2018-11-12
《avr中断在code中写法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AVR中断//注意:本文使用的GCC-AVR版本为WinAVR20100110中断不是C语言的一部分,中断的实现是由编译器实现的。所以,不同版本的编译器的中断的写法有很大的不同;即便同样是WinAVR,不同版本中的中断向量竟然都是略有区别的!1.头文件如果使用GCC-AVR的中断操作,必须包括头文件interrupt.h,即:#include进一步说明:WinAVR20100110版本已经不支持使用头文件signal.h了,为了向后兼容,如果执意引入signal.h,其实相当于也是引入的interrupt.h。打开signal.h文件
2、,除了前面一大堆‘没用的’版权信息和说明,只有如下几行内容:#ifndef_AVR_SIGNAL_H_#define_AVR_SIGNAL_H_//这两句加上最后的#endif是条件定义,防止重复引用的#warning"Thisheaderfileisobsolete.Use."//这一句【警告】指出,让我们使用interrupt.h#include//这一句告诉我们,即使你忘了或者不知道使用interrupt.h,那么也不会出错,引用signal.h相当于引如了interrupt.h。不过何必脱了裤
3、子放屁——多此一举呢,直接引用interrupt.h就好了!#endif2.中断函数格式现在官方推荐的中断书写格式就有一种:ISR(INTERRUPT_vect)//INTERRUPT_vect是中断向量名称(即后面INT0_vect,TIMER1_OVF_vect等){//中断处理代码}3.中断向量的名称中断向量的名称在WinAVR的最近几个版本中有所变化,是微调。正是因为是微调,如果不注意,将会出现难以发现的错误。最好的办法就是打开查看X:WinAVR-20100110avrincludeavr路径下的你使用的处理器所对应的IO定义头文件。比如我使用的是A
4、Tmega16A,我就在此路径下找到了iom16a.h,打开它,找到这两句话后面的,就是本型号单片机定义的所有中断。以下就是ATmega16A的中断,全部照抄如下:============================开始====================================#defineINT0_vect_num1#defineINT0_vect_VECTOR(1)#defineINT1_vect_num2#defineINT1_vect_VECTOR(2)#defineTIMER2_COMP_vect_num3#defineTIMER2_COM
5、P_vect_VECTOR(3)#defineTIMER2_OVF_vect_num4#defineTIMER2_OVF_vect_VECTOR(4)#defineTIMER1_CAPT_vect_num5#defineTIMER1_CAPT_vect_VECTOR(5)#defineTIMER1_COMPA_vect_num6#defineTIMER1_COMPA_vect_VECTOR(6)#defineTIMER1_COMPB_vect_num7#defineTIMER1_COMPB_vect_VECTOR(7)#defineTIMER1_OVF_vect_nu
6、m8#defineTIMER1_OVF_vect_VECTOR(8)#defineTIMER0_OVF_vect_num9#defineTIMER0_OVF_vect_VECTOR(9)#defineSPISTC_vect_num10#defineSPISTC_vect_VECTOR(10)#defineUSARTRXC_vect_num11#defineUSARTRXC_vect_VECTOR(11)#defineUSARTUDRE_vect_num12#defineUSARTUDRE_vect_VECTOR(12)#defineUSARTTXC_vect_num1
7、3#defineUSARTTXC_vect_VECTOR(13)#defineADC_vect_num14#defineADC_vect_VECTOR(14)#defineEE_RDY_vect_num15#defineEE_RDY_vect_VECTOR(15)#defineANA_COMP_vect_num16#defineANA_COMP_vect_VECTOR(16)#defineTWI_vect_num17#defineTWI_vect_VECTOR(17)#defineINT2_vect_num18#defineINT2_vect_VEC
此文档下载收益归作者所有