フツーにArduinoでのポートの叩き方だと3μs周期が最速くらいで
これじゃやっぱし遅い。。。が確認できた。
でもって最速くらい速いのも試してみた。
これをやるとせっかくArduinoがハードを意識しないで使えるように
してくれてるのに逆らってる。
組込みマイコンでハードの性能目一杯使うのでよくやるやつ。
nopで最低1クロック分の待ちを入れないと動かない。
なんでだっけ? OSがなんか関係あるのかな?
仕事で使ってるPSoCマイコンでは普通にやることなんだけど。
noInterrupt()いれたらOSが割り込んでくるの止めれるのかなって試したら
3秒毎のリセットはなくなって約8秒毎になった。
これもなんでかな? だ。
それでもArduinoらしくやった高速ポートLチカは330kHzだったのに対して
レジスタ叩きでのLチカは6.7MHzくらい約20倍に高速になった。
動作の様子はこんな感じ。
#LEGO #ミニフィグ #セグウェイ への道#ESP01 #Arduino の良さを無視した
— しん (@shinichi_nin) 2022年12月27日
レジスタ直叩きの超々高速 #Lチカ
使いにくいけど、やっぱし レジスタ叩くのは速い...
6.7MHz、周期が約150nsくらいに縮まった。#ESP8266 #レジスタ #GPIO https://t.co/ehfZCfIgrx pic.twitter.com/tmkG7cburC