打印

单片机只有一个定时器,如何测频率?

[复制链接]
5184|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rejoice7|  楼主 | 2012-5-10 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chen3bing| | 2012-5-10 15:44 | 只看该作者
什么单片机?定时1S,数脉冲数。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
rejoice7 + 1
板凳
cjseng| | 2012-6-10 18:46 | 只看该作者
有点奇怪,怎么会有只有一个8位定时器的单片机?
如果还有其它定时器,只是已经另作它用的话,不妨用分时复用的方法,暂时把别的定时器借来用一下,用完就还。

使用特权

评论回复
地板
airwill| | 2012-6-11 18:51 | 只看该作者
用定时器计时 1S
用 IO 变化中断, 记录上升或下降沿次数.
1S 内记录到的边沿次数就是频率咯

使用特权

评论回复
5
cjseng| | 2012-6-11 21:02 | 只看该作者
本帖最后由 cjseng 于 2012-6-11 21:03 编辑

楼上的:8位定时器计时1S,通常要溢出好几次才能得到1S吧?用另一个IO来记录上升沿或下降沿,125K,周期只有8us,定时器要中断,IO还要中断,8US不够吧?这个方法好像有点困难。如果是51,我觉得用汇编才可以实现。

使用特权

评论回复
6
lyjian| | 2012-6-12 08:36 | 只看该作者
有点奇怪,怎么会有只有一个8位定时器的单片机?
如果还有其它定时器,只是已经另作它用的话,不妨用分时复用的方法,暂时把别的定时器借来用一下,用完就还。 ...
cjseng 发表于 2012-6-10 18:46

不奇怪,Microchip就有N多只有一个8位定时器的单片机

使用特权

评论回复
7
lyjian| | 2012-6-12 08:37 | 只看该作者
用定时器计时 1S
用 IO 变化中断, 记录上升或下降沿次数.
1S 内记录到的边沿次数就是频率咯
airwill 发表于 2012-6-11 18:51

一个只有一个定时器的MCU,估计不会有IO变化中断功能

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
rejoice7 + 1
8
lyjian| | 2012-6-12 09:01 | 只看该作者
一个只有一个定时器的MCU,估计不会有IO变化中断功能
lyjian 发表于 2012-6-12 08:37

查了一下,Microchip还真有这种单片机

使用特权

评论回复
9
ccxlslr| | 2012-6-12 10:12 | 只看该作者
10
cjseng| | 2012-6-12 21:54 | 只看该作者
9# ccxlslr

你这个程序实现不了楼主要求的功能!中断处理时间太长了,不要忘了楼主要测量的频率是125K。

使用特权

评论回复
11
airwill| | 2012-6-13 08:19 | 只看该作者
楼上的:8位定时器计时1S,通常要溢出好几次才能得到1S吧?用另一个IO来记录上升沿或下降沿,125K,周期只有8us,定时器要中断,IO还要中断,8US不够吧?这个方法好像有点困难。如果是51,我觉得用汇编才可以实现。 ...
cjseng 发表于 2012-6-11 21:02


楼主原先也没有说是51, 即使是标准51, 如果把 频率升到 24M, 我想也应该玩得转了.
标准 51 怎么会只有一个8位定时器呢? 所以也就没有想是 51 了.
而况现在大都 51 都提速了呢.
如果觉得51太紧张, 可以考虑用 AVR 来做.

使用特权

评论回复
12
lyjian| | 2012-6-13 08:25 | 只看该作者
楼主原先也没有说是51, 即使是标准51, 如果把 频率升到 24M, 我想也应该玩得转了.
标准 51 怎么会只有一个8位定时器呢? 所以也就没有想是 51 了.
而况现在大都 51 都提速了呢.
如果觉得51太紧张, 可以考虑用 AVR ...
airwill 发表于 2012-6-13 08:19

楼主现在也没说是51

使用特权

评论回复
13
lyjian| | 2012-6-13 09:13 | 只看该作者
只有一个定时器的话测起来也简单
但要测得精确的话和单片机的速度、定时器是否有中断、是否可以设置成计数器有关
如果可以设置成计数器且可以中断的话,那就可以测试得很精确了

使用特权

评论回复
14
rejoice7|  楼主 | 2012-6-13 09:31 | 只看该作者
哇,谢谢楼上各位的热心帮助.
没有说清楚,是pic单片机,频率也只有4Mhz.
没有想出来办法,只能换另外型号的单片机了.

使用特权

评论回复
15
sedatefire| | 2012-6-13 10:31 | 只看该作者
125K,周期只有8us,是pic单片机,频率也只有4Mhz
除非你整个单片机就干这个事情,
那倒是可以用汇编写代码,不开任何中断,在主回圈中扫描这个io,时序上按指令去严格计算,这个可以有

使用特权

评论回复
16
lyjian| | 2012-6-13 10:49 | 只看该作者
哇,谢谢楼上各位的热心帮助.
没有说清楚,是pic单片机,频率也只有4Mhz.
没有想出来办法,只能换另外型号的单片机了.
rejoice7 发表于 2012-6-13 09:31

PIC中也有很多功能强大的型号呀

使用特权

评论回复
17
wukunshan| | 2012-6-13 17:05 | 只看该作者
可以做到呀,为什么要换单片机呢?125K频8us一个脉冲。pic单片机频率4Mhz,一个机器周期1us,8位定时器可以定时255us;你就计算在这255us里有多少个脉冲,再化成1秒钟的脉冲数,频率不就出来了?

使用特权

评论回复
18
smile_luo| | 2012-6-13 17:43 | 只看该作者
测个频率这么费事,直接打开定时器,溢出后让i/o口取反,然后看下频率,频率大了就把定时器的基数就把增加,直到输出你想要的频率。。。

使用特权

评论回复
19
lyjian| | 2012-6-13 18:48 | 只看该作者
测个频率这么费事,直接打开定时器,溢出后让i/o口取反,然后看下频率,频率大了就把定时器的基数就把增加,直到输出你想要的频率。。。
smile_luo 发表于 2012-6-13 17:43

用什么看频率?

使用特权

评论回复
20
lyjian| | 2012-6-13 18:50 | 只看该作者
可以做到呀,为什么要换单片机呢?125K频8us一个脉冲。pic单片机频率4Mhz,一个机器周期1us,8位定时器可以定时255us;你就计算在这255us里有多少个脉冲,再化成1秒钟的脉冲数,频率不就出来了? ...
wukunshan 发表于 2012-6-13 17:05

光是干这个不干别的或只测试一次的话可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

0

粉丝