#define TIMER_IVT_ENTRYNUM 0x1C
또는 I는 다음과 같습니다 내 자신의 인터럽트 핸들러 설정 방법 #define TIMER_IVT_ENTRYNUM 0x08
타이머가 인터럽트를 생성하지 않습니다 ... 또는 무엇?
prevInt = getvect(TIMER_IVT_ENTRYNUM);
setvect(TIMER_IVT_ENTRYNUM, currInt);
:
void interrupt Timer::currInt(...) {
(*prevInt)(); //old timer routine
cout << "TIMER occurence" << endl;
lock();
counter++;
tick(); //empty body
if ((Kernel::getRunning() -> getTimeSlice() > 0))
if (counter >= Kernel::getRunning() -> getTimeSlice()) {
unlock();
dispatch();
//dispatchInterrupt();
};
unlock();
};
어쨌든, 타이머 인터럽트가 전혀 자신에 발생하지 않습니다를. ..하지만 내가 int 루틴을 명시 적으로 geninterrupt(TIMER_IVT_ENTRYNUM)
을 사용하여 호출하면 ...
마찬가지로 타이머 자체를 생성하지 인터럽트 ... OO Win XP 32 비트, Borland C++ 3.1 (필수 항목 임)
btw, 프로그램이 55ms 이상 실행되도록하기 위해'sleep (seconds)'가 타이머와 독립적인지 확실하지 않기 때문에 휘발성 변수에 몇 수백만 연산을로드한다. 나는 그렇다고 생각하지만, 심지어 인터럽트 실행의 증거가 없다 ... – maricn