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



私の巡回している、好きなサイトの一つがhirax.net。
このサイトのファンで、この人の本「史上最強科学のムダ知識」
はもちろん買ってます。
uriは http://www.hirax.net/

最近デザインが大幅に変わりました。

「最近のinsede out」のコーナー。AJAXを使って、タイトル
をマウスでグリグリするだけで過去に遡っていけます。
さすがだなぁ。

web系の開発を仕事でやったことが無いので、そこらへんの
知識が浅く、こういうことができるだけで

「すげーなー」

と感心してしまいます。

まぁ、その話は置いておいて、一番好きな「できるかな?」
のコーナー。

最近はネタがなかなか見つからないのか、新しい記事が
ポツリポツリとしか出てきませんが、やっぱり
http://www.hirax.net/dekirukana8/ghost/
こういうプログラムとか、とても好きです。
この手のもの、もっと作って欲しいです。

http://www.hirax.net/dekirukana7/matsui/
こっちは確か本に載ってたかな?

私は(理系出身なのに)数学が超苦手ですが、
こういう風に使われると、数学も面白いなぁって
思ってしまいますね。

久々に、本引っ張り出してきて読みたいなぁ。
どこにしまったかすっかり忘れてしまった…



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




相変わらず、AVRスプライトのスクロールプログラムです。

昨日寝る前にプログラムを眺めていたら、間違えを見つけて
しまいました。

しかもそれほど単純じゃなく、またしても処理時間が長くなる
ようなお話。

うーん、こまった。
と思って、どう直せばいいかを少しだけ考えてみるために、
ソースを眺めてみたところ…

あれ?なんでこんな処理しているんだろう?って疑問を
感じちゃう部分が。

ある数値を8で割って、それをその少し下で8を掛けて
いるんですよ。
同じ数を割って掛けるという必要は無いはずなのに…。
(下位3ビットの処理は別途考慮が必要だとしても)

そう思って、それぞれの計算式の意味を調べてみると、

・8で割る意味
 →1キャラクターは縦8ドットなので、キャラクタ数単位
  のY座標を求めるために8で割る
・8掛ける意味
 →横方向は1行あたり16キャラクターだが、1バイト
  あたり2キャラクターなので、結果1行あたり8バイト。
  なのでY座標を8倍するとVRAM上のアドレスが求まる

といった具合。なるほど。それぞれに意味はあるんだな!

設計どおりのプログラムになっているので可読性が高く、
仕様変更するなどは都合が良いんだけども、ただ、ループの
最も内側なんだし、もっと最適化したロジックにしないと
処理時間に影響大だから、ここは見直しが必要だな…

それ以外にも探してみると、数値の範囲が127以下しか
ない数値をバカ正直に16ビット幅で処理していたり…。
(1命令ですみそうなことを、10倍以上の手間掛けて
 処理しております…バカだなぁ…)

そこらへんを見直したら、もしかしたら大幅に処理時間を
短縮できそうだなぁ!

見直しの観点だけ忘れないようにメモしておいて、あとは
時間が有る時に考えることにしよう。
それにしても、思わぬ収穫でした…



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




色々検索かけていたら、面白いサイトを見つけて
しまいました。

世の中にはこんな凄いものをこんなにシンプルな
構成で自作してしまう人も居るんだねー。
凄い!

私は何でもソフトで実現してしまおうと思っちゃう派
なので、ソフトで実現することばかり考えていた
んですが、ホンのちょっとの工夫をするだけで
こんなシンプルにできちゃうんだ…

自戒しないとね… マイコンの世界は深い…

それにしてもこんな道具があれば、スプライト表示器
作るときにもっと楽できたと思うんだけどなぁ。
シミュレーターしか味方が居なかったからなぁ…

それにしても、PIC16F648使っているため、動作速度
が1us単位ですか…。

この間dsPICが付録のトラ技を買ってきたとき、
この付録使ってこの手のものを作ってみようかと
思ってたんですが、作ってから実用することも考慮すると、
最近馴染んでいるAVRで作って手っ取り早く安定した
品質にした方がいいかなというのと、dsPICの勉強を
しながら作るのはやっぱちょっと障壁が高い気も。


となれば、AVRでどの程度の性能が出せるかだな。

そこまで考えるともう気になっちゃって、AVRの命令表
引っ張り出してきて、命令をつなぎ合わせてクロック数を
数えてみました。

…うーん0.25us?… さらに縮められないかな?

時間ができたらもう少し突っ込んで考えてみよう。
まだできるかどうかはわかんないので、何を作るかは
ひとまずお楽しみということで…。

とか言ってる場合じゃなくて、忙しいんだった!
こういうのはちゃんと時間が取れるときまで
先送りにしよう!



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする