【发布时间】:2013-09-24 11:00:01
【问题描述】:
我正在使用 SDCC 编译器。
我想要实现的是在模式 2 自动重新加载中重新配置 Timer0,在它自己的中断处理程序期间。这是C代码:
void reconf(void) __interrupt(1){
TR0=0;
TH0=0xC0;
TL0=0xC0;
TR0=1;
}
以下是问题:
在 Timer0 自己的中断处理程序执行期间,是否可以在模式 2 自动重载模式下为 Timer0 重新配置 TL0 和 TH0?
是否有必要在重新配置期间停止 Timer0,因为它 中断期间没有运行?
TH0 和 TL0 值是否在中断例程之前被压入堆栈 开始?如果这些值被推入堆栈,然后在例程处理程序执行期间我重新配置这些值,这些值是否会被覆盖 退出中断时从堆栈中弹出的值?
【问题讨论】:
-
我查看了 sdcc 编译 C 代码后生成的 HEX 文件,似乎在执行任何中断例程之前 TH0 和 TL0 没有被压入堆栈。
-
另外,我尝试通过它的中断例程重新配置 timer0 并且它可以工作。
标签: c timer interrupt 8051 sdcc