0

我正在尝试利用 ATMega16 的 timer0 来生成 PWM 脉冲并在基本蜂鸣器上输出声音。

但是我面临一个问题,我想弄清楚我如何能够改变我创造的波浪的频率(以产生不同的音符)

我在数据表上看到,使用 timer0,您可以使用 ICR 获取 TOP 值,这样您就可以更改频率,使用 OCR,您将能够更改占空比。

有没有类似的方法,但在 timer0 或 timer2 上?

我已经在使用 timer1 来控制其他东西,所以我想知道我是否必须重新开始:(

提前致谢,

任何想法表示赞赏

4

1 回答 1

1

通常,当“用完”定时器时,基于定时器中断的简单软件例程会让你走得很远。

例如,使用定时器比较中断之一,您可以轻松生成几乎所有频率:

在定时器比较 ISR 中,只需切换相应的输出引脚并(让定时器)复位为 0。设置的比较值根据定时器频率的分数确定生成的频率。

有许多更精细的方法可以使用有限数量的可用计时器同时执行大量计时器任务。它基本上都是基于经过深思熟虑使用的 ISR。

于 2012-05-18T18:21:09.720 回答