问题出现状况:一开始还好好的,随着程序越来越大;(Program Size: data=194.4 xdata=21 code=6015),也没有很大,问题出现了,定时器2中断不进了(整个程序只用了一个定时器2,且没有其他中断)。
仿真找问题:中断设断点,哎,第一次进了,再次运行就永远都进不去了,下面是程序和寄存器的值,确定初始化没问题,用的官方例程,在code还是一千多的时候,他还是能用的。
void Time2_Init(void)
{
CKCON &= ~0x0A; // Timer2 uses SYSCLK/12 不分频
TMR2CN &= ~0x01;
TMR2RL = TIMER2_RELOAD; // Reload value to be used in Timer2
TMR2 = TMR2RL; // Init the Timer2 register
TMR2CN = 0x04; // Enable Timer2 in auto-reload mode
ET2 = 1;
}
void Timer2_ISR (void) interrupt 5
{
TF2H = 0;
f_1ms = 1;
}
|