之前的Performance只是小試身手,這次要動真格的了,
首先就從新朋友Yun 開始,為什麼選擇Yun呢?因為它跟Leonardo一樣,都是ATMEGA32U4的CPU
而且我買回來才知道,這塊是Made In Taiwan的,很GOOD喔。
OK~話不多說,來看結果吧
這個程式一樣是在計算micros()-micros()的時間差,大部份都是0和4。少部分的8和12,極少數的16和20。
也就是說其實速度不太固定啊,不曉得這單晶片都作什麼去了。
程式碼在這裡下載
程式不小心被我寫成無窮迴圈,大家可以猜看看問題在哪裡喔。
65535(0xFFFF)+1就Overflow 變-65536(0x10000)了,所以j還是小於等於65535,變成無窮迴圈了(請反白)
測試結果的Raw Data在這裡下載。
延伸閱讀(9/28更新)
1. http://arduino.cc/en/reference/micros
"On 16 MHz Arduino boards (e.g. Duemilanove and Nano), this function has a resolution of four microseconds (i.e. the value returned is always a multiple of four). On 8 MHz Arduino boards (e.g. the LilyPad), this function has a resolution of eight microseconds."
2. 這一頁中,有人提出了micros()的精確度問題,然後它自己寫了一個新的micros,詳情在下面網址
http://electricrcaircraftguy.blogspot.com/2014/02/Timer2Counter-more-precise-Arduino-micros-function.html#.VCefyvmSz2U
留言列表