求助:我用DG128写的ECT输入捕捉程序,但Timecounter好像没有工作 源代码如下
- UID
- 153813
- 性别
- 男
|
求助:我用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 */
}
|
|
|
|
|
|
- UID
- 153813
- 性别
- 男
|
timecounter不能工作的问题已经解决,原来是没有初始化时钟
新的问题又出现了:
IC0我明明没有脉冲信号输入,程序却自动跳入中断子程序
PORTB口所接的LED灯不断闪烁
我想实现的功能是按键按一次
LED明暗变化一次,并记录按钮按下的时间 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
TIOS为0x01,则通道0为输出比较模式,而不是输入捕捉模式。 |
|
|
|
|
|
- UID
- 153813
- 性别
- 男
|
|
|
|
|
|