OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5508|回复: 2

51单片机的定时器外部中断测量脉冲频率,大概40-80HZ,程序有问题,大神帮忙看看,在线等

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2013-5-25
在线时间
0 小时
发表于 2013-6-27 17:03:47 | 显示全部楼层 |阅读模式

大致思想是,跳变沿从P3.3进入时,启动定时器0,等待跳变沿再次进入,停止定时器,读取定时器的值,然后清零,关闭中断允许,主函数显示,开中断,再次……,结果是显示的数值是随机数,求指点
#include<reg52.h>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int i,j;
char  speed;
bit flag;
//省略了显示函数
void main()
{
TMOD=0X01
TH0=0;
TL0=0;
EX1=1;
IT1=1;
EA=1;
while(1)
{
  if(!flag)
  {  
   j=(unsigned int)(i*1.09);
   speed=1000000/j;
      display(speed);
   delayms(1000) ;
     EX1=1;  
  }   
}
}
void inter() interrupt 2
{
flag=~flag;
if(flag) 
  {
  TR0=1;
  i=0;
  }
  else
   {
   TR0=0;
   i=TH0;
   i<<=8;
   i|=TL0;
   TH0=0;
   TL0=0;
    EX1=0;
   }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-6-27 19:35:09 | 显示全部楼层
你的定时器是否存在溢出可能?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

338

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2013-6-15
在线时间
15 小时
发表于 2013-6-27 21:46:46 | 显示全部楼层
回复【楼主位】生活一秒改变:
---------------------------------
换定时器0改成定时器1或者把P3.3改成P3.2试试
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 11:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表