频率发生器的问题

2019-03-24 20:26发布

我用ATMEGA8,16M晶振,写了个CTC模式频率生发器:然后用按键控制OCR1A,达到控制OC1A脚产生频率,发现OC1A脚频率在1M赫兹时,频率下降很快,可是到大约4K HZ的时候,再往下降,非常的慢,到500HZ时,都是0.1HZ地往下降,(按键一直按下时,频率一直下降)。我的需求是:用按键控制,实现一个10HZ-100KZ线性变化的频率发生器,求大神指导个思路 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
maychang
1楼-- · 2019-03-25 05:22
 精彩回答 2  元偷偷看……
maychang
2楼-- · 2019-03-25 06:34
注意:此单片机产生的信号,其周期是线性变化的。
wensir
3楼-- · 2019-03-25 11:00
maychang 发表于 2015-2-4 19:49
办不到的事。
单片机的定时器,计数到某一设定值即重新开始计数,此即CTC模式。
16MHz时钟,产生1MHz输出,计数值为8即重新开始。比1MHz低一些的频率,当然是计数值为9重新开始。你自己计算一下,这个频率是多少?这两个频率之间的频率,此单片机是没办法产生的。
中间的频率缺失没有关系,主要是,到差不多10KHZ的时候,我按键每1ms判断一次,按键是否弹起,没有弹起,就OCR1A++,可是到10KHZ往下降的时候,很慢很慢,我想找个思路,是不是可以在,10KHZ-10HZ变化的时候,按键按下,频率变化快一点,现在在500HZ左右,每次降0.01HZ,我手都按痛了


chunyang
4楼-- · 2019-03-25 11:13
wensir 发表于 2015-2-4 20:00
中间的频率缺失没有关系,主要是,到差不多10KHZ的时候,我按键每1ms判断一次,按键是否弹起,没有弹起,就OCR1A++,可是到10KHZ往下降的时候,很慢很慢,我想找个思路,是不是可以在,10KHZ-10HZ变化的时候,按键按下,频率变化快一点,现在在500HZ左右,每次降0.01HZ,我手都按痛了



步长当然可以软件控制,而且更好的办法是单按,最小步长上升或下降。长按,根据时间决定步长。按键时间越长,步长越大。过去的电子表估计你没玩过吧,就是这么设计的。
wensir
5楼-- · 2019-03-25 15:34
chunyang 发表于 2015-2-4 23:46
步长当然可以软件控制,而且更好的办法是单按,最小步长上升或下降。长按,根据时间决定步长。按键时间越长,步长越大。过去的电子表估计你没玩过吧,就是这么设计的。

没有接触过“步长”的概念,可否给我解释一下,或者给的资料,想学习


chunyang
6楼-- · 2019-03-25 20:24
wensir 发表于 2015-2-5 09:51
没有接触过“步长”的概念,可否给我解释一下,或者给的资料,想学习



就你的应用例而言,每次改变定时器的溢出周期设置量的大小就是步长。

一周热门 更多>