当一个函数中有多个中断时应该怎么写
时间:10-02
整理:3721RD
点击:
比如说PIC16F877,如果只有一个ADC中断函数,就写void interrupt ADCINT(void),如果只有一个CCP1中断就写void interrupt CCP1INT()。如果两个同时有怎么办?把这两句都写上么?单片机能否区分哪个是哪个中断?判断的依据是什么?
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;
}
}
好的,多谢多谢