学研のGMC-4改造記を振り返る ― 2009/08/19 18:35:30
所で、学研のGMC-4ネタを周りを見ないで突っ走ってここまで来てしまったが、色々と改めて一呼吸置いてみた。改めて見渡すと既に色々な方々が似たようなプロジェクトでやられている。ここは一つ小休止
まず、打ち込みの仕様なのだが、構想100年のサイトで既に仕様を提唱している。まずこのフォーマットに修正する予定。データの次の0x0d受信時のInc処理もフラグを用意すれば殆ど修正は手間が掛からないはずだ。
次に、通信の取りこぼし対策。構想100年のサイトでは、CTS-RTSのフロー制御で行っている。私も真似ようと思ったのだが、私のシステムではバッファがあと50バイト程あれば300ボーという条件付で80ステップ全て使ったプログラムのデータ転送を無手順で行えると見ている。
しかし、通信のバッファの問題。PIC16F648はRAMエリアが256バイト(16F628は224バイト)使えるわけなのだが、unsigned charでバッファを確保するにしても
unsigned char Buffer_FIFO[160];←これはだめで
バンクというPICの変態アーキテクチャーのおかげで、連続した領域を確保できないわけである。(その変態に付き合っている自分もどうかと思うが・・・・・)
それなので、これを2つに分けて確保すると、
unsigned char Buffer_FIFO[80];
unsigned char Buffer_FIFO2[80];←こうすれば良い
これなら領域を取れるわけである。但し、それなりのアルゴリズムにも工夫が必要となる。「電子ブロック工房」のサイトでも同じような事に遭遇した様だ。
あと、某巨大掲示板でUSB付きのPICでやらないかという事だが、あいにくそこまでのスキルがないorz むしろ課題とさせてくれ orz
というわけで、まずは出来るところから修正して、ダブルリングバッファについては頭を加熱させてみようと思っている。これが出来れば他のPICのプログラムでも応用が利きそうだ。それにしても、今回はGMC-4から色々収穫が多いな。
最近のコメント