首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助:我用DG128写的ECT输入捕捉程序,但Timecounter好像没有工作 源代码如下

求助:我用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 */
}
timecounter不能工作的问题已经解决,原来是没有初始化时钟
新的问题又出现了:
IC0我明明没有脉冲信号输入,程序却自动跳入中断子程序
PORTB口所接的LED灯不断闪烁

我想实现的功能是按键按一次
LED明暗变化一次,并记录按钮按下的时间
TIOS为0x01,则通道0为输出比较模式,而不是输入捕捉模式。
海纳百川  有容乃大
晕了 太不小心了我
谢谢板主
返回列表