[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00317] VBLANK カウント割り込みが上手くいきません
- Subject: [WitchTech 00317] VBLANK カウント割り込みが上手くいきません
- From: Tooru Watanabe <erupi@fa2.so-net.ne.jp>
- Date: Wed, 16 Aug 2000 14:25:53 +0900
えるぴと申します。
またしても質問です。
下記のようなコードを書いて、VSYNCの回数を変数vSyncでカウントするように
したつもりなのですが、このコードをコンパイルして実行させると、
"TEST2"を表示した直後(多分VSYNCタイマー割り込み発生時)に暴走してしまいます。
しばらくコードを見直してみたのですが、一体どこが間違っているのかわかりません。
どこが間違っているのでしょうか?
なお、コンパイラはLSI-C86を使用しています。
----
#include <sys/system.h>
#include <sys/timer.h>
#include <sys/text.h>
#include <sys/key.h>
#ifdef LSI_C_WW
#define _CS _asm_inline("mov ax, cs")
#define _DS _asm_inline("mov ax, ds")
#endif /* LSI_C_WW */
void initInterrupt(void);
void vSyncCount(void);
volatile int vSync;
intvector_t intVector;
intvector_t lastIntVector;
int main(int argc, char *argv)
{
text_screen_init();
text_put_string(0, 0, "TEST1");
initInterrupt();
vSync = 0;
text_put_string(0, 1, "TEST2");
text_put_numeric(8, 1, 8, 0, vSync);
sys_wait(150);
text_put_string(0, 2, "TEST3");
text_put_numeric(8, 2, 8, 0, vSync);
key_wait();
}
void initInterrupt(void)
{
intVector.callback = vSyncCount;
intVector.cs = _CS;
intVector.ds = _DS;
intVector.reserve = 0;
sys_interrupt_set_hook(SYS_INT_TIMER_COUNTUP, &intVector, &lastIntVector);
timer_enable(TIMER_VBLANK, TIMER_AUTOPRESET, 1);
}
void vSyncCount(void)
{
vSync++;
}
----
--------
えるぴ(渡邉 徹) E-mail address : erupi@fa2.so-net.ne.jp
ML Archives