Board logo

标题: 求助:我用DG128写的ECT输入捕捉程序,但Timecounter好像没有工作 源代码如下 [打印本页]

作者: regretn    时间: 2007-4-23 22:51     标题: 求助:我用DG128写的ECT输入捕捉程序,但Timecounter好像没有工作 源代码如下

#include /* common defines and macros */
#include /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"



volatile unsigned int time,ok;
#pragma CODE_SEG NON_BANKED
interrupt void ECT_IC0(void){
time = TC0;
if(ok==0){
PORTB = 0X00;
ok=1;
}
else {
PORTB = 0XFF;
ok=0;
}
TFLG1 = 0X01;

}

#pragma CODE_SEG DEFAULT
void main(void) {
DDRB = 0XFF;
PORTB = 0XFF;
time = 0;
ok = 0;
TSCR1 = 0X80;
TSCR2 = 0X05;
TIOS = 0X01;
TCTL4 = 0X02;
TFLG1 = 0X01;
EnableInterrupts;
TIE = 0X01;
for(;;) {} /* wait forever */
/* please make sure that you never leave this function */
}

作者: regretn    时间: 2007-4-23 23:07

timecounter不能工作的问题已经解决,原来是没有初始化时钟
新的问题又出现了:
IC0我明明没有脉冲信号输入,程序却自动跳入中断子程序
PORTB口所接的LED灯不断闪烁

我想实现的功能是按键按一次
LED明暗变化一次,并记录按钮按下的时间
作者: strongchen    时间: 2007-4-24 09:25

TIOS为0x01,则通道0为输出比较模式,而不是输入捕捉模式。
作者: regretn    时间: 2007-4-26 23:06

晕了 太不小心了我
谢谢板主




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0