「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



相変わらず、ちょこっとずつ、Arduinoでオシロ
の作戦の続き。


LCDやOLEDディスプレーをSPIでアレコレ制御する
のが、結構遅いので、なんとか出来るものなのか
算段を立てたいところ。
line表示とか、ドットで描画する関係の処理が
とにかく遅い。



http://blog.galileo-7.com/?eid=86932
galileo7さんのサイトによると、digitalWriteは
44クロック必要、とある。

んで、じゃぁ今回のSPI制御のロジックで、1ドット
あたり何回のSPI通信を行っているのかを元に、
例えば画面全体を1ドットずつ塗りつぶしたら、
digitalWriteと直接ポート叩くのでは、どのくらい
短縮できるのかを試算してみる。

…思ったほど速くならない? ホント?

と思って、実際にどのくらいのクロック数が掛かって
いるのか、ちょい実験。



SSD1306チップ搭載の、今回実験に使ってるOLED


を元にすると、128×64ドットなので、ドット数は
画面全体で8192ドット。これを、1ドットずつforの
ループで描画していくと、およそ8秒程度。

for文でどのくらいのオーバーヘッドがあるのかを
実験で求めてみると…瞬間的に処理が終わる。

もちろん、最適化で無効処理にならないように配慮
して、その状態だから、実質、入出力周りで8秒ほど
掛かっている計算。


んで、このディスプレー宛に、1ドットあたりでは
コマンドorデータを4回出力してて、その4回ごとに
8ビットデータをdigitalWrite関数で上げ下げして
るんだけど、それぞれdigitalWriteを27回使って
いるのが、現状の内部処理。(3+8×4)

8秒という値は、8Mhz化してあるArduinoでの計測時間
なので、それを元にクロック数を計算してみると…

 8秒÷8192÷4÷27÷(1/8000000)≒72クロック

と出てくる。

うーーーーーん。微妙に長い。



タイマ割り込み関係を禁止してないので、Arduinoの
コア機能が使ってるタイマ機能あたりがオーバーヘッド
になっているのか?

それとも、オイラの書いたドット描画以外の処理で
食ってるのか?


と思って、タイマ割り込み禁止にしたり、digitalWrite
だけを10個とか100個とかforループに組み込んで、
100万個分の処理で何秒かかるのかとか試してみた
んだけど、やっぱり70くらいっていう数値。

ドット描画以外の処理は、鼻くそほどの処理時間
しか掛かって無いみたい。

計測条件が異なるからなのか、44クロックと
72クロック。なんかこの差が微妙に縮められ
なかった…。
まぁ、桁が違うとかいう差じゃないから、この
辺りにコタエがあると考えておこう…



んで、もし、このSPI関係処理をdigitalWriteから、
直接ポートを操作するように変更したら、この
「大部分」を占める70クロックが、一気に数クロック
まで、一桁ダイエット出来るわけだから、かなり速く
なるんだじゃいかな、と思うんだけどな。

でも、後々ピン配置を色々流動的に弄りたいって
キモチもあるから、今はあまり弄りたくないん
だよな。速度の実験用だけでも、テストのスケッチ
書いて、試してみようかな。



http://brown.ap.teacup.com/nekosan0/2189.html
この間、たまたま触れていた、千葉テレの「ハロー
ジャガー」のジャガーさん。

http://sankei.jp.msn.com/life/news/140505/trd14050512000012-n1.htm
なんか、取り上げられてた。

個人でテレビの枠を買ってたので、なんとも不思議な
人だなぁと思ってたんだけど、当時友人に聞いた
話では、実業家で資産家で、ものすごい金を持って
いるから、個人で枠買って、やりたいことやってた
みたいなこと言ってたけど、どうやら本当のこと
だったらしい。

最近は、ustreamで活動してるのか。お元気で
なにより。



http://mamesoku.com/archives/3517189.html
ニッポンの妖怪。どれも良くできたイラストだな。
どうやって描いてるんだろう?最後の大天狗、
かっちょいい。



http://www.123dapp.com/Project/Raspberry-Pi/2346978
Raspberry Piの外側の枠を、新しいMACっぽく。
これなかなか良いな。

MACにこだわる必要もないんだけど、ネイキッド
のままのRaspberry Piより、やっぱこういう
外枠があった方がコンピュータって感じするなぁ。

オイラなら、出来ればPC-8001かPC-8001mkIIっぽい、
一体型がいいな。っていうか、どちらかの機種の
筐体が欲しいな。2/3スケールくらいで。

キートップは、Let'sノートくらいのピッチで
いいから、こじんまりと。

とか言いつつ、クラムシェルも捨てがたいな。
Raspberry Piベースで、初代98noteみたいな
クラムシェル型、作れないかな…



http://headlines.yahoo.co.jp/hl?a=20140508-00000068-reut-bus_all
Nintendoは、新興国機を検討してるのか。
オイラは、ゲーム機のハードスペックって、
初代プレステくらいでもうお腹いっぱいに
なってるんだよな。
あの位のを、安く、小さく、長時間遊べるような
マシンにして、日本でも売ってくれたらいい
のにな…とか思っちゃうんだよな。



http://jp.techcrunch.com/2014/05/08/20140507hover-adds-gestures-and-touch-to-your-diy-electronics/
Arduinoで、ジェスチャー操作ができちゃう
のは、なかなか面白いかも。



コメント ( 0 )