测频率问题?

[复制链接]
1696|0
 楼主| victor3l 发表于 2012-8-17 14:10 | 显示全部楼层 |阅读模式
本帖最后由 victor3l 于 2012-8-17 14:41 编辑

我用测频率法测量信号的频率。定时器0用于定时,定时器1用于计数。为什么在定时器1中的数据有时候读到有时候读不到?我定时1s中,将计数器中计的数就当成信号的频率。程序如下:
void main()
{
TMOD = 0x51;//把t0设置成定时器16位的,把t1设置成计数器16位的
TH0 = (65535 - 50000) / 256;
TL0 = (65535 - 50000) % 256;
ET0 = 1;
TR0 = 1;
TH1 = 0;
TL1 = 0;
ET1 = 0;//t1用于计数,不开中断
TR1 = 1; //t1 已经打开了,已经开始计数了
EA = 1;
while(1)
{
  if(timerCount > 20)
  {
   EA = 0;//
   timerCount = 0;
   temp = (TH1<<8) +TL1;  //读到数据
   TH1 = 0;
   TL1 = 0;//把计数值清零
   EA = 1;//
  }
      if(temp > 10)  //这里判断有没有读到数据。
   {
    temp = 0;
    speak = ~speak;
   }
}
}
void ser()interrupt 1 //说明中断进来了   2012年8月17日12:06:55
{
TH0 = (65535 - 50000) / 256;
TL0 = (65535 - 50000) % 256;
timerCount++;

}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

308

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部