如何在ICC AVR中设置同一中断源的不同中断函数
如何在ICC AVR中设置同一中断源的不同中断服务函数,例如定时器,一个中断服务函数是计数值加1,另一个中断服务函数是IO输出反转,如何设置和调用?汇编语言中可以设置中断服务程序的入口地址,C语言该怎么编写呢? 给出下面采用CVAVR编写的T0中断服务程序。不同C的平台,中断服务的定义有区别。bit T0_int_mode
// Timer 0 overflow interrupt service routine
interrupt void timer0_ovf_isr(void)
{
if (T0_int_mode)
{
...... //计数加1
}
else
{
...... // I/O输出反转
}
T0_int_mode = ~T0_int_mode;
}
上面的中断服务,一次执行“计数加1”,下一次执行“I/O输出反转”,交替。
T0_int_mode为全局变量,用于控制中断处理的内容,可以在其它的程序中根据实际需要设置。 除了设置中断标志变量外,还有没有其他方法?
页:
[1]