//初始化程序
void ECT_Init1(void)
{
DDRA=1;
ECT_TIOS=1; //设定1为输出
ECT_TSCR1=0x90;//TIME ENABLE
ECT_TSCR2=0x07;//选定与分频系数为128
ECT_TC0=0xffff;//触发时机
ECT_TIE=1;//允许中断
}
中断程序
interrupt void ECTCH0_ISR(void)
{
Pulse_Count++;
}
板子的时钟为24M,一个中断周期应该为128*65536/24M=0.349S左右,然后是Pulse_Count++,一次才对吧,但是程序一跑起来Pulse_Count马上就变成了一个天文数字. 按正常的来说应该是慢慢的加上去的. 眼睛应该可以看到数据的变化的,我用单步调了一下,Pulse_Count是从0加上去的.也就是说中断已经进去了,但就是太快了...
请帮忙看一下..谢谢....
听不大明白,可以说清楚点吗?
中断标志没清除.所以程序一直在中断中,出不来.
interrupt void ECTCH0_ISR(void)
{
byte temp;
temp = TC0;
Pulse_Count++;
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |