8F328P-U 在 16MHz 和 32MHz 工作頻率中的速度比較
本帖最后由 eddiewwm 于 2020-3-23 18:05 编辑8F328P-U 在 16MHz 和 32MHz 工作頻率中的速度比較:
F_CPU =16000000 HzF_CPU =32000000 Hz
1/F_CPU =0.0625 us1/F_CPU = 0.0313 us
nop : 0.063 usnop : 0.031 us
digitalRead : 4.588 usdigitalRead : 2.293 us
digitalWrite : 3.423 usdigitalWrite : 1.715 us
pinMode : 4.335 uspinMode : 2.168 us
multiply byte : 0.377 usmultiply byte : 0.188 us
divide byte : 4.900 usdivide byte : 2.453 us
add byte : 0.379 usadd byte : 0.190 us
multiply integer : 0.816 usmultiply integer : 0.408 us
divide integer : 13.315 usdivide integer : 6.655 us
add integer : 0.506 usadd integer : 0.253 us
multiply long : 3.705 usmultiply long : 1.853 us
divide long : 37.290 usdivide long : 18.670 us
add long : 1.004 usadd long : 0.501 us
multiply float : 5.343 usmultiply float : 2.670 us
divide float : 72.190 usdivide float : 36.095 us
add float : 7.720 usadd float : 3.860 us
itoa() : 12.620 usitoa() : 6.315 us
ltoa() : 124.190 usltoa() : 62.095 us
dtostrf() : 70.890 usdtostrf() : 35.470 us
random() : 91.715 usrandom() : 45.845 us
y |= (1<<x) : 0.314 usy |= (1<<x) : 0.157 us
bitSet() : 0.314 usbitSet() : 0.157 us
analogReference() : 1.636 usanalogReference() : 0.818 us
analogRead() : 172.040 usanalogRead() : 85.995 us
analogWrite() PWM : 7.410 usanalogWrite() PWM : 3.705 us
delay(1) : 1004.490 usdelay(1) : 1001.995 us
delay(100) : 100024.984 usdelay(100) : 100024.992 us
delayMicroseconds(2) : 1.133 usdelayMicroseconds(2) : 0.849 us
delayMicroseconds(5) : 3.393 usdelayMicroseconds(5) : 2.261 us
delayMicroseconds(100) : 74.990 usdelayMicroseconds(100) : 46.995 us
原来这货还可以在32M下工作,我还是现在才知道呢,真是后知后觉了:L
基本上是翻倍的性能,LGT吸引我的亮点更加多了 測試程序:
https://gist.github.com/SyncChannel/1e509ae9e8a34cc1e56a :o大腿,居然做了这么详细测试。 本帖最后由 迷你强 于 2018-5-29 16:36 编辑
:o话说。。。直接开32M,函数啥的正常工作么?不需要修改么?(目测就是微秒函数直接减半了。其他貌似没毛病啊。)
页:
[1]