12 MHz晶振速度

时间:2017-06-17 11:18:32

标签: arduino clock arduino-uno

所以我注意到我的中国Arduino Uno有一个12 MHz的晶体而不是原来的16Mhz。

我做了计算,结果是四分之一毫秒的差异。

我的问题:

  1. 这是否会影响伺服器或音调()或任何其他时间敏感的硬件/库?
  2. 我可以通过代码通知“时钟速度是12,000”吗?

2 个答案:

答案 0 :(得分:3)

降低的时钟速度将影响使用定时器的任何内容,除非可以更改代码以适应较慢的时钟。延迟,毫秒(),明确编码的定时器中断等等。必须记住,你每秒会得到更少的总指令,因此在16MHz时几乎“不适合”的快速中断可能在时钟周期中根本不“适合”可在12MHz。

特别是业余级伺服系统对时序敏感......它们依赖于每20毫秒左右0.5-2.0毫秒范围内的脉冲。因此,如果您的项目包含许多业余爱好项目所涉及的伺服系统,那么您将需要特别了解时间。

在gcc-c编程中,#define F_CPU = 12000000指令会提醒编译器/预处理器计算12 MHz时钟的延迟。您的工具集可能会有所不同

答案 1 :(得分:1)

12MHz晶振不是Arduino时钟源,它用于这些克隆板上的USB芯片(CH340)。 Arduino通常由一个微小的谐振器(可能在C5和C6之间)以16MHz的频率计时。您无需进行任何调整。