2014-09-28 00.51.47    

今天的主角換成DUE囉,

DUE的工作頻率是84MHz,整整是其他朋友的5倍還有剩,而且它的CPU 是32 bit的,所以當然是快多了啊

OK~話不多說,一樣來看結果吧,測試的Raw Data在這裡下載

 螢幕截圖 2014-09-28 01.00.11  

神奇了,居然每個頭都是2,該不會是四捨五入的結果吧?Arduino 沒有提供nanosec的參數,很不方便啊,

不過除了每一行的開頭是2之外,其他都是1 micro sec,不錯不錯,很快很快。

程式碼在這裡

這次沒有變無窮迴圈,大家可以想看看問題在哪裡喔。

DUE的CPU 是32 bit,所以int不是2byte,而是4個byte,65535(0xFFFF)+1之後,就是65536(0x10000)了,所以大於65535,迴圈結束
如果看不懂的話,可能要參考一下計算機概論的書籍。
(請
反白)

 


 

延伸閱讀

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()的精確度問題,不過似乎是用在那些16MHz 的8-bit CPU上,然後他自己寫了一個新的micros,詳情在下面網址

http://electricrcaircraftguy.blogspot.com/2014/02/Timer2Counter-more-precise-Arduino-micros-function.html#.VCefyvmSz2U

arrow
arrow
    全站熱搜

    qmaw 發表在 痞客邦 留言(0) 人氣()