我使用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 */ } |