使用预分频器确定微控制器(AVR)中的时钟周期

时间:2015-03-23 05:09:32

标签: assembly timer counter microcontroller avr

我对AVR和微控制器编程很陌生。我不太了解定时器/计数器中的一些概念。今天看完时我发现了这个问题:

  

从OC1A(PB1)引脚产生占空比为30%的高电平有效1 KHz数字波形。使用轮询方法检查输出比较操作是否成功。时钟频率为16 MHz。

给出的解决方案是:

  

解决方案:将预分频器设置为8,然后TCNT的时钟信号周期为0.5 usec。信号高和低的时钟周期数分别为600和1400.

我真的不明白为什么将预分频器设置为8会使时钟信号的周期为0.5 usec?有人可以在这里向我解释数学吗?那么,考虑到这一点,为什么时钟周期数为600和1400?这些数字来自哪里?

我认为我不理解解决方案与不了解预分频器的确切概念有关。我的理解是说时钟频率是16 MHz,如果预分频器是8,那么输出频率将是2 MHz。如果我错了,请纠正我。非常感谢你!

1 个答案:

答案 0 :(得分:0)

是的,你是对的。预分频为16MHz的8频率可将频率降至2MHz。每个刻度将是1 / 2,000,000秒或0.5 us。

这个问题要求1kHz周期,30%,关闭70%。 1 / 1kHz是1 ms或1000 us或2000 ticks。其中30%为600蜱,其余70%为1400蜱。