[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00201] Re: オートリピート関数
- Subject: [WitchTech 00201] Re: オートリピート関数
- From: "c.mos" <c.mos@zob.ne.jp>
- Date: Thu, 03 Aug 2000 17:29:00 +0900
c.mos です。
これは、難しい問題だったりします。
Tatsuya Kudoh wrote:
> key_hit_check_with_repeat()の内部で1V期間待っているようですが、
> 仕様には何も書かれていないので、確実に1Vなのかわかりません。
key_hit_check_with_repeat()で、キーがHitされていない場合は、
hlt で割り込みを待機します。通常は、VBLANK割り込みしか入っていませんから、
結果的に、1V待つことになってしまいます。
実は、キー入力にはチャタリングが発生しているようで、key_hit_check()を
空回ししたりすると、入力が不安定になってしまうんです。
> いまのところ、次のような対策を考えています。ご意見を頂けないでしょうか。
>
> 1. オートリピートを自前で処理
> 2. key_hit_check_with_repeat()の処理時間が一定なら、
> 画面制御を適当に加速して同期させる。
> 3. key_hit_check_with_repeat()の前後でTICK値を調べ、
> 同期させる。
上記理由により、2,3は使えないと思います。
処理ループは、1Vよりずっと高速なんですよね?
でしたら、1V期間に相当するループごとに、key_hit_...を呼ぶ
のが、一番簡単かも知れません。
あるいは、現在のLCD走査ライン(LCD_LINE)を取得して、底に近づいていたら
key_hit_...を呼ぶようにすれば、効率的かも。
あっ。LCD_LINEの取得って、BIOSでサポートしていなかったような。(^^;
c.mos
ML Archives