Answers:
老实说,我可以花几个小时来描述不同的频率以及为什么要使用它们,但是有人已经知道了!
http://en.wikipedia.org/wiki/Crystal_oscillator_frequencies
该表有一个UART列,用于告诉您将其划分为哪些UART频率。
它还会告诉您何时频率是特定通信系统的标准晶体。
凭直觉,我将使用适用于我的应用程序的最慢晶体。您将获得较少的时钟漂移,并且在较低频率下电路走线通常表现得更好。
顺便说一句,如果您想每隔几毫秒执行一次操作,则可以按照以下步骤进行操作:
Fosc = 25MHz.
T=1/Fosc = 40ns;
1ms/40ns = 25000 cycles/ms;
0xFFFF-25000=0x9E57;
on overflow TMR1: //assuming TMR1 is 16 bit and counts every clock cycle
doEveryMillisecond;
incrementMillisecondTimer;
TMR1 = 0x9E57;
不确定使用的是哪种微处理器,但MPLAB具有实用程序来计时事件花费多长时间,因此您可以使用它来调整TMR1的复位值,以处理所有开销和/或不准确的时钟。晶体的差异可能很大,以至于在生产环境中这是不可行的……不确定。