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



つい、「忘れないうちに!」なんて思って、ソース修正に
手を染めてしまった…

AVR用背景表示器の横スクロール機能のお話です。

横方向のオフセット値を元に1ビット単位でビットイメージ
をシフトする処理は頭の中で確かに「これでいける!」って
確信できたので、ソースの修正を始めたんですが…

1つ大事なことを忘れてましたよ。オフセット値の設定を
する際に、8ドット毎に1キャラクター分のシフトを
行わないとならないんだった…。
1キャラクター1バイトなら何の問題も無かったんだけど、
SRAM容量の都合で2キャラクターを1バイトに押し込んで
あるので、4ビット単位でスクロールしないとならないん
だった…すっかり忘れてた…

1バイトずつ読み込んで4ビットずつシフトする
必要があるんだよなぁ…AVRにはそんな便利な命令は
ないから、ゴリゴリと力技で書いて行かないと…

まぁ、乗りかかった船。仕方ないのでザッとロジックを
組んでみました。
アセンブルしてシミュレーターをかけてみると、横方向
4ビット単位のシフト処理は1回あたり64us。あぁ、
処理時間の余裕値を大きくはみ出した…

どうしようかなぁ…
ひとまず機能の実現を直近の目的において、そのあと
チューニングするなり、使用上の注意(運用留意事項
とも言うべきか)でなんとかするとか。

機能の実現自体は多分できるんだけど、処理能力の
問題で、横8ドット毎に適度なウェイト処理(もしくは
ダミーデータ出力)等行うことで、なんとか実現に
こぎつけたいなぁ…。

横スクロールの後に1~2バイトのダミーデータを
送信すれば(走査線2~4本分の時間が稼げるので)
うまく動作するはずだから、実用上は問題は無い
はずなんだけど。

ただ、個人的には、そういう「使用上の注意」って
いうのは嫌いなんだよなぁ…。
理屈どおりにシンプルに動いてくれるのが一番
勘違いやトラブルを生まないのに…

なかなか上手く行かないもんですねぇ…

まぁ、なにより動作することを最優先にすすめる
ことにしましょう。


それにしても、時間が無いってのに要らないことやって
新たな問題を掘り起こしているのは我ながらおバカですねぇ…

やるべきことを最優先しないと…



コメント ( 0 )