Sahara's WebLog

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

PIC24FJ64GB002 __delay32();で白黒2値NTSCビデオ信号

PICでTVゲームという先達の作例を見ていると、あそこまでは出来ないにしても、テレビに縞模様くらいは描けるだろうと思ったのでやってみた。
結果から。
pic24fj64gb002_ntsc_01
その反転。
pic24fj64gb002_ntsc_02
出力をオシロスコープで拾ったもの。
pic24fj64gb002_ntsc_03
カラー信号を基準にすると15.734kHzなので1ラインの長さは63.6μsだが、実測で63.0μsとなっている。
pic24fj64gb002_ntsc_04
もちろんMPLAB X IDEのSimulationでのStopwatchの値でも同じ値となる。
コードはこんな感じ。

__delay32();に与える値の最小が12らしいのと、最適化の問題から、本気でやるならいずれアセンブラで書くしかないのは分っているが、まだ、このレベルではCで十分だ。
20150326235532
分圧用の抵抗値は「NTSCの白黒ビデオ信号をマイコンと分圧抵抗で作る。-抵抗値を求める-」でやったとおり3.3Vでの値をhandyCalcさんにお伺いした結果、575Ωと246Ωとなったが、手持ちでは510Ωと200Ωとした。
pic24fj64gb002_ntsc_05
何が何でも__delay32();でやるとしたら、一番細かい縞模様がこんな程度だ。
pic24fj64gb002_ntsc_06
もっと乱れてぐちゃぐちゃに表示されるとばかり思っていたので、ちょっと拍子抜けしてしまった。
さて、縦方向はどういう風にやるのかなというところだが、まだ何も知らない。
というか、たぶん私の手に負えるような物ではないと思う。

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

Posted under: PIC24FJ64GB002


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.