我使用GZ32进行输出比较的软件编程,想通过他的输出比较(不控制他的IO口,仅仅是软件比较功能),来实现10ms的定时终端,在中断中实时的改变比较计数器的比较值,但是调试结果显示,只进入了一次终端,改变了一个比较计数器的值,就再也不进中断了,不知道有没有人遇到国这种情况?请给予指点,下面是定时器初始化的程序和中断程序。
#pragma TRAP_PROC
void Timer1CH0_INT(void)
{
/* Set Timer flag with 10ms */
Timer10msFlag =1;
T1CH0 = T1CNT+0x0EA6;
T1SC0_CH0F = 0;
// debug flag
 TD_PTD4 = 1;
Dly(100);
 TD_PTD4 = 0;
}
void Timer1CH0_Init( void )
{
T1SC_TSTOP=1; /* TSTOP=1 for stop Timer 1 */
T1SC_TRST=1; /* reset register */
T1SC_PS=4; /* PS=4 */
T1MOD = 0xFFFF; /* set modoul number */
T1SC_TOIE=1; /* Disable Timer 1 overflow interrupt */
T1SC0_MS0A = 1;
T1SC0_MS0B = 0;
T1SC0_ELS0A = 0;
T1SC0_ELS0B = 0;
T1SC0_TOV0 = 0;
T1SC0_CH0MAX = 0;
T1SC0_CH0F = 0;
T1CH0 = 0x0EA6;
T1SC0_CH0IE = 1;
T1SC_TSTOP=0; /* TSTOP=0 for start Timer 1 */
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |