12 MHz crystal 速度

12 MHz crystal speed

所以我刚刚注意到我的中文 Arduino Uno 有一个 12 MHz crystal 而不是原来的 16Mhz。

我计算了一下,原来是四分之一毫秒的差异。

我的问题:

  1. 这是否会影响舵机或音调 (),或任何其他时间敏感的 hardware/library?
  2. 我可以通过代码通知"clock speed is 12,000"吗?

降低的时钟速度将影响任何使用计时器的东西,除非可以更改代码以适应较慢的时钟。延迟、millis()、显式编码的定时器中断等。而且必须记住,您每秒获得的总指令会更少,因此在 16MHz 时几乎 "fits" 的快速中断可能根本不会 "fit"在 12MHz 可用的时钟周期内。

业余爱好者级别的伺服系统对时序特别敏感……它们取决于每 20 毫秒左右的 0.5-2.0 毫秒范围内的脉冲。因此,如果您的项目像许多业余项目一样包含伺服系统,那么您需要特别注意计时。

在 gcc-c 编程中,#define F_CPU = 12000000 指令会提醒 compiler/preprocessor 计算延迟时考虑到 12 MHz 时钟。您的工具集可能会有所不同。

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