PIC读书笔记4:中断函数注意事项
1:中断名称
本文引用地址:https://www.eepw.com.cn/article/201609/296518.htm例如Timer1中断:
void __attribute__ ((interrupt)) _T1Interrupt (void)
{
//interrupt service roution code here..
}
函数名_T1Interrupt并不是随意选择的,她是中断向量表中预先定义的Timer1中断标志符,并且在连接器脚本中需要加载代码,加载的是“.gld”文件。
C30编译器中用到的__attribute__(())机制是用于说明特殊功能的C语言扩展功能。个人认为这种语法又长又难读。推荐使用include文(.h)件里的宏定义,这样可以大大提高代码的可读性。下面代码与上面功能一样。使用宏_ISR_实现:
void _ISR _T1Interrupt (void)
{
//interrupt service roution code here..
}
2:关于中断代码长度:
冗长的计算应该放在主函数中,而不是放在中断服务程序中。
评论