STC12系列 捕捉数据不准的疑问
问题:脉冲是用信号发生器发出的方波 波形很漂亮,在捕捉方式下 捕捉到的计数值有变化,
捕捉方式:下降沿
应用:做计数脉冲
方法:计算脉冲时间,所以在第一个下降沿时开计数器计时,并清除计数寄存器和捕捉寄存器
到第二个脉冲停止计数 ,停止计数器控制位,并读取捕捉到的计数值,通过串口发给串口调试软件观察低字节变化 ;
为什么会出现这样的问题呢? 51响应中断的时间很快的呀,再加上STC12系列的是1T的应该会更准啊 具体问题具体分析,你的信号频率多少?程序呢? 回复【1楼】ckvlhf
-----------------------------------------------------------------------
void PCA0()interrupt 7 using 0
{
if(CF) //CF=1;益处中断
{
Count++; //计数加1
CF=0; //清除中断标志
}
else{ //下降沿中断
flag=~flag;
if(flag) //第一个下降沿
{
Count=0;
CH=0;
CL=0;
CCAP0L=0;
CCAP0H=0;
CCF0=0; //清零
CR=1;
}
else //第二个下降沿中断
{
CR=0; //关计数
int_g=Count;
int_h=CCAP0H;
int_l=CCAP0L; //读取计数值
CCF0=0; //清中断标志
delayms(200);
delayms(200);
send_data(int_h);
delayms(200);
delayms(200);
send_data(int_l);
}
}
}
回楼上 这是中断程序 ,1US加1计数 ,信号频率500HZ以上就会有 回复【2楼】simon09
-----------------------------------------------------------------------
刚测试了 什么频率低字节变化很大高字节也变化 但是变化比较小
页:
[1]