不管是什么单片机程序,中断总是非常重要的一部分 ,linux 下的avr开发,主要是依靠avr-gcc,以及avr-libc,它们对中断程序的格式要求,与window下的icc-avr以及win-avr有所差异,这里对linux下中断服务程序编写做个简要介绍。
个人原创,转载请注明出处:http://blog.csdn.net/embbnux/article/details/12448053
首先是要引入的库:
#include <avr/io.h> #include <avr/interrupt.h>
这两个是中断程序所要用到的,中断程序的编写位置,只要是在工程里的某个c文件里面就可以了。
具体格式:
ISR(INT1_vect) { //...................................// }
其中的INT1_vect为各种中断种类,也可以理解为中断的端口,avr单片机还有其他的“INT0_vect”、“INT2_vect”
以及串口中断的 “USART_RXC_vect” 以及“USART_TXC_vect” 等,具体按不同的中断选取。
还有很重要的一点是要记得在初始化里面打开总中断开关:
sei();