Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC24FJ64GB002 Inline Assemblerで白黒2値NTSCビデオ信号

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

このエントリーをはてなブックマークに追加

Posted under: PIC24FJ64GB002


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.