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

边缘捕捉为什么还是不行?

你究竟是想采用按键中断呢,还是输入捕捉?如果要采用输入捕捉,必须先启动定时器。请参看相应的数据手册。你也可以用CodeWarrior内置的PE来生成参看代码。
海纳百川  有容乃大

 

void InitECTinput(void){
DDRT=0xf0;
TIOS=0x00; //channel 0 as input
TCTL4=0x01; //set rising edge
TIE=0x00;


}

unsigned char i=0;
void main(void) {

DDRB=0xFF;
PORTB=0x00;
InitECTinput();
EnableInterrupts;
TSCR1_TEN=1;
while(1){

if(TFLG1_C0F) {
TFLG1_C0F=1;
i++;
PORTB=i;
}
}
现在程序已经改为这样了,但为什么还是不行呢?

已经用万用表检测到IO口的电平是有变化的~~谢谢~~

[此贴子已经被作者于2007-4-2 15:52:07编辑过]

边缘捕捉为什么还是不行?

我想用S12的边缘捕捉来检测01开关的按动次数,在B口显示
程序如下:
void InitECTinput(void){
DDRT=0xfe;
TIOS=0x00; //channel 0 as input
TCTL4=0x01; //set rising edge
TIE=0x00;


}

unsigned char i=0;
void main(void) {
/* put your own code here */

DDRB=0xFF;
PORTB=0x00;
InitECTinput();
EnableInterrupts;
while(1){

if(TFLG1_C0F) {
TFLG1_C0F=1;
i++;
PORTB=i;
}
}


}
但总是检测不到,请问是为什么呢?谢谢~~~

[此贴子已经被作者于2007-4-2 16:19:58编辑过]

TFLG1_C0F=1???
应该是置“0”把,要不你初始化时将TSCR1_TFFCA置“1”
可以设一个断点看看,有没有进if(TFLG1_C0F)里面。
海纳百川  有容乃大
返回列表