[問題] 如何打出MHz等級的方波
各位好,
目前小弟正在嘗試使用AR9331+openwrt的系統實作一個方波,
目的是為了看這個系統打出來的方波可以到多快,最終會用這個波去控制RGB LED燈。
我使用的方法是用hrtimer寫一個module,
hrtimer的interrupt時間我設為5000(5us),
每一次進入interrupt就反向gpio_out,並且用gpio_set_value指定出去。
但是我看示波器量到的結果,
他反向的時間有時候會是3us,有時候是8us,且是隨機的,
有時候是high轉low時為3us有時是8us,low轉high時也是,
但如果把interrupt設到8000以上的話,示波器上看到的結果是正確的(反向頻率125Khz)。
所以我想會不會是這兩個function實際上跑的指令跟想像中不太一樣,
我有試著讓這個module在編譯時留下assembly code,
但是加上-save-temps也沒辦法,所以沒辦法追到它實際執行的指令是哪些。
目前還想嘗試的是..不使用interrupt而是直接用while loop,
看看他最快可以到哪裡..但是這樣之後openwrt如果有跑其他process,
再排程下來,好像就更難捉摸它的速度會變成什麼了。
所以目前我算是沒有別的辦法了orz
請問各位有其他方法可以幫助我再逼出這個CPU的速度嗎?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.3.213
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1446364054.A.00A.html
→
11/01 15:59, , 1F
11/01 15:59, 1F
→
11/01 16:02, , 2F
11/01 16:02, 2F
→
11/01 16:02, , 3F
11/01 16:02, 3F
推
11/01 16:37, , 4F
11/01 16:37, 4F
→
11/01 16:59, , 5F
11/01 16:59, 5F
→
11/01 17:00, , 6F
11/01 17:00, 6F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章