PIC24FJ64GB002で白黒2値NTSCビデオ信号をつくって遊んでいる。
相変わらず垂直同期に関しては垂直の「ス」の字も知らない。
にわか仕込みの Inline assembler でも白黒の線を描かせてみた。
32MHzで動かす場合、NTSCの1ラインの間には約900サイクル分しか命令を実行できない。
ただ単純に白黒を繰り返すだけでも2サイクル、ループさせるからカウント値を減算するのに1サイクル、カウント値をチェックして元へ戻るのに2サイクルで合計5サイクル必要だ。
細かい話だが、黒を描いてから戻るのには、白から黒へより1サイクル余分に必要だ。
そのままだと黒が太くなってしまうため、バランスを取って線を等幅にするために白の後にnopを1つ入れる。
結局、どう節約しても6サイクル必要ということになる。
つまり140組程度の線しか描けないというわけ。
もちろん、以上は昨日から始めたASM30の泥縄的な知識に基づいた計算だから、こうやればもっとスマートっていう手があるのかもしれないが。
![このエントリーをはてなブックマークに追加](https://b.st-hatena.com/images/entry-button/button-only@2x.png)