首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教freescale 8位单片机的中断问题

请教freescale 8位单片机的中断问题

当用C语言编程时,在编写中断程序函数的时候,常常要找到中断向量表,写入相应的中断号“interrupt 6 void timer1_overflow(void)”,可是为什么这里写的(如:“6”)要比实际中断表中查到的中断号大1呢?(查到的是“5”)
恐怕你看错了。
那是中断优先权。因为复位与IRQ的中断优先权都是0,所以后面的中断号都是中断优先权+1。
学后而问

RE

那用C编程序的时候,怎么确定该写多少中断号呢?能否举一个例子,谢谢
按地址来点比较准确。FFFE-FFFF,reset 向量编号为0, FFFC-FFFD,编号为1,FFFA-FFFB编号为2,依次类推。
一般都是datasheet给出的中断号+1。因为FFFC-FFFD是软件中断,不计入中断号,但是在CodeWarrior编译器里面,把它作为中断1。
可是为什么这里写的(如:“6”)要比实际中断表中查到的中断号大1呢?(查到的是“5”)
是因为前面有个SWI 中断
返回列表