各位大虾好! 我用定时器0测量正脉冲宽度,宽度在1000us左右,TMOD.3(GATE)为1,INT0接外部脉冲,12M晶振,机械周期为1us, 初始化部分:
TL0 = 0x00; TH0 = 0x00; TMOD = TMOD | 0x09; EX0 = 0; // 关闭INT0中断
主循环部分:
while(1) { TL0 = 0x00; // 定时器0 用于产生0.001ms 的延迟时间 TH0 = 0x00; maichong_jishu_1=0;//脉冲长度计数 unsigned int型 //=========================================================== wait1: if(INT0==1) { goto wait1; } wait2: if(INT0==0) { goto wait2; } TR0 = 1; // 启动定时器0 wait11: if(INT0==1) { goto wait11; } TR0 = 0; // 停止定时器0 maichong_jishu_1=TH0*256+TL0;
//省略显示部分程序。。。。。 }
//------------------------------- maichong_jishu_1 的结果应该在1000左右,示波器观察结果 但是 实际显示 maichong_jishu_1 的值只有200 左右, 百思不得其解,希望各位指教!! 谢谢!!
|