なんとなく放って置くのはなんだか気持ち悪いので、
もう一度なにかいい方法がないかなぁとおもって
もう一回だけスケッチを読み直して見ました。
一つ、v-syncのトリガを上手くキャッチ出来るかも
知れない方法を思いつきました。
以下のような修正方法です。
(修正前)
attachInterrupt(0, v_sync, RISING);
(修正後)
attachInterrupt(0, v_sync, LOW);
こうすれば、一瞬の立下り信号を取りこぼしたと
しても、v-syncが発生している(=LOW)一定期間中
に一瞬でも拾えさえすれば、v-sync割り込みは
発生するはずです。
…やってみました。
思考実験だけで終らせてみようと思ったのですが、
ちょこっと回路組んでやってみました。
…だめでした。
こういう時の心境… _厂ト○ こんな感じ。
だめだ…。ソフトウェアシミュレーターくらいは
使えないと、こういう細かいことは検証できません。
LOWなら上手くいくんじゃないかと思ったんだけど、
これでも垂直同期期間の信号は拾えないみたい。
私の脳みそではこれ以上はどうすることも出来ないなぁ…
まぁ、こういうときはちゃんとロジアナとか持ち出して
信号を細かく見てみればいいんだろうけど、
ネコロジーの完成度は少し中途半端なままになって
いるのと、今回使ったシリアル版のarduinoも
ネコロジーも、共にシリアルi/f接続を使うという
ってことが引っかかっていて…
まぁ、どうしてもarduinoでやらないといけないという
必要も無いし、arduinoの場合は32個のレジスタの
push、popでどうせ処理時間がかかり、表示領域がかなり
狭くなっちゃうので、実用性という点ではTINY2313の
フルアセンブラにも劣ってしまいます。
(実用性って何?っていう突っ込みは無しです)
あまり脱線しつづけるのもなんなので、このお話は
ひとまず凍結することにします。
うーむ…。
|