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

【求助】【急】一个ECT测试程序的结果和预想的不对

【求助】【急】一个ECT测试程序的结果和预想的不对

我写的一个关于ect的测试程序,想测试输入捕捉,并想探测到两个有效沿之后在产生中断,但是我的程序写进去的表现并不是我预想的,主要是我给你个脉冲之后就会进入中断,而且用LED显示TC0H的值也是全0。请大虾指教,十分感谢

源程序如下:

void main(void) {

DDRB=0xff;
PORTB = 0x0f;

TSCR1 = 0X80; //计数器使能
TSCR2 = 0X05; //运行模式选择
TIOS = 0X00; //输入捕捉
TCTL4 = 0X01; //沿选择

ICSYS_TFMOD =1;//中断置位模式选择为两次探测之后中断
ICOVW_NOVW0 = 1; //
ICSYS_BUFEN=1;//使能保持寄存器
ICSYS_LATQ=0;//队列模式


DLYCT = 0x02; //ÑÓʱ

EnableInterrupts;

TIE = 0x01; //ÖжÏʹÄÜ


for(;;) {

//if(i==1) {

//i=0;
//PORTB=~(PORTB);
//PORTB = TC0 ;

//}


}
}


interrupt void ECT_IC0(void){

TFLG1 = 0X01; //ÇåÖжϱêÖ¾
//i++;
PORTB=~(PORTB);//进一次中断B口的灯状态变一次
//TSCR1 = 0X80;
//i= TC0H;
//PORTB = i;
}

程小科
ICSYS是单次写入的寄存器,就是说,它的所有位必须一次性写入,分多次写的话就会出错。
海纳百川  有容乃大
!!!!太感谢你了!!!!!
程小科
返回列表