多谢!对多个中断源只有一个中断入口,只能在中断中根据中断标志位进行判断了。
/***********************************************************************
Name:void interrupt int_isr(void)
Function:interrupt service routine
Input:none
Output:none
************************************************************************/
void interrupt int_isr(void)
{
//unsigned char i;
/*
if(TMR1IF)//if timer1 overflow interrupt
{
TMR1L = 0x18;
TMR1H = 0xFC;//Reload timer1 initial value, TMR1H:TMR1L = 0xFC18 = 64536
TMR1IF = 0;//Clear Timer1 interrupt flag bit
store_counter++;
if(!key_active)
store_counter = 0;//clear counter
if((store_counter == 10000) && (key_active == 1))//10s
{
key_active = 0;
store_flag = 1;//write EEPROM per 10s
store_counter = 0;//clear counter
}
key_scan();
*/
/*
if(on_off_flag)
{
led_decode(led,*fout);
led_display(led);//display current and voltage on LEDs
}
else
{
for(i=0;i<=4;i++)
{
led[i]=10;
}
led_display(led);//all off
} */
//}
|