PIC33单片机中断服务函数写法(其他单片机同样适用)
最近做项目接触到了PIC单片机,以前从来没有用过,感觉这就是一个介于51和32之间的单片机,但是在电源方面用得比较多,稳定性好。
我用的是PIC33EP32MC202系列的单片机,由于是第一次使用,也没买开发板,走了不少弯路,连写个中断都不太会,在网上找了个外部中断的历程,中断服务函数是这样写的。
void __attribute__((__interrupt__, auto_psv)) _INT1Interrupt(void) { ; }
然后我当时就找了很久,这个__INT1Interrupt(void) 中断服务函数的关键字到底是在哪里定义的,是不是在某个头文件或者汇编文件里定义的,找了许久没找到。网上也没有太多说的,最后让我在MPLAB X IDE的帮助文档里给找着了。
MPLAB X IDE -> 帮助 -> 帮助目录
就是这个Interrupt vector tables 这里有描述,他告诉我们这个表在XC16安装目录的docs的XC16MASTERINDEX文件中。然后找到他。我的目录是 C:\Program Files (x86)\Microchip\xc16\v1.41\docs,打开XC16MasterIndex
OK找到了,下次要换其他中断就直接换名字吧,虽然也有其他重新定义中断服务函数名字的方法,但是我觉得还是这样最直白最好用。