PIC单片机论坛
直播中

zhugeliang9575

10年用户 32经验值
私信 关注
[问答]

当一个函数中有多个中断时应该怎么写

比如说PIC16F877,如果只有一个ADC中断函数,就写void interrupt ADCINT(void),如果只有一个CCP1中断就写void interrupt CCP1INT()。如果两个同时有怎么办?把这两句都写上么?单片机能否区分哪个是哪个中断?判断的依据是什么?

回帖(2)

萨佛131

2015-11-2 00:29:37
PIC16只有一个中断向量。所以,必须是在中断响应程序里查找哪个中断标志有了。那个中断函数的名称没意义。
请找实际例程看看去。比如这个:
static void interrupt
isr(void)                        // Here be interrupt function - the name is unimportant.
{
if (T0IF) {
T0IF = 0;                        // clear the interrupt flag
        }
else if(TMR1IF) {
TMR1IF = 0;                        // clear the interrupt flag
        }
else if(RBIF)
{RBIF=0;
}
}
举报

zhugeliang9575

2015-11-5 16:27:56
引用: 萨佛131 发表于 2015-11-2 00:29
PIC16只有一个中断向量。所以,必须是在中断响应程序里查找哪个中断标志有了。那个中断函数的名称没意义。
请找实际例程看看去。比如这个:
static void interrupt

好的,多谢多谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分