2694|5

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助51单片机采集频率 [复制链接]

用51的普通IO,采集5KHz到8KHz的可变频率,需要用几个定时器?我用一个定时器做,可采回来的频率跟示波器显示的频率相差一个数量级,急需帮助!请大侠出来指点。

最新回复

表述的有点儿简单,详细点儿说说采集“可变频率”的原理。以前用过采集固定频率,没用过可变的。  详情 回复 发表于 2009-11-23 13:43
点赞 关注

回复
举报

4

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
意思是:采集的信号是个脉冲波,频率不固定,但是频率在5KHz到8KHz这个范围内的任一个值,我要知道某一段时间的频率,比如说,每秒钟内的平均频率,下一秒再采,再算频率
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
一个设置成16位的定时器已经足够,只有不超过1M采集应该没有问题,你的数据处理是正确的吗?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
定时+计数应该可以吧?
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

5
 
一个定时器,用来计时,外部中断2,捕捉输入脉冲。

  1. //全局变量,宏
  2. #define TC 0x********  //能够将定时器配置为1S的常数
  3. int32 fq; //频率,单位HZ
  4. int32 pls; //实时脉冲个数

  5. /*********************************
  6. *实时监控引脚的脉冲频率
  7. *细腻度由TC决定(多长时间频率才可能变化一次)
  8. *
  9. **********************************/
  10. int main()
  11. {   
  12.      fq=0;
  13.      InitTimer(TC);//配置定时器,1秒定时
  14.       EnableTimerInterrupt();
  15.      EnableExtInterrupt();
  16.      while(1)
  17.      {
  18.           deylay();
  19.           printf("当前频率:%dhz\n",fq);
  20.      }
  21. }

  22. //定时中断服务
  23. void TimerPro()
  24. {
  25.     ...
  26.     fq=pls;
  27.     pls=0;
  28.     ...
  29. }

  30. //外中断(脉冲监控)处理
  31. void ExtIntPro()
  32. {
  33.     ...
  34.     pls++;
  35.     ...
  36. }
复制代码


 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

6
 
表述的有点儿简单,详细点儿说说采集“可变频率”的原理。以前用过采集固定频率,没用过可变的。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表