void TimerInit(void)
{
        // 타이머 카운터값을 초기화 한다.
        OSCR = 0;

    // 타이머에 의해서 발생하는 모든 인터럽트를 금지한다.
        OIER = 0;                

        // 타이머 카운터값이 0이 될때까지 기다린다.
        while(OSCR == 0); // WatchDoc() ;

        // 매치 레지스터0를 0으로 설정하여 매치값을 0으로 한다.
        OSMR0 = 0;

        // 매치 레지스터를 매치 상태값을 초기화 한다.
        OSSR = OSSR_M0;

        // 타이머 오버 플로어 감시 변수를 초기화 한다.
        numOverflows = 0;
}


Timer 설정 루틴이 위와 같습니다. 이 OS Timer 같은건 Linux 의 Tick 같은 interrupt 를 발생하기 위해서 하는게 맞지요?

그런데, 위에서보면, 매치 레지스터를 보면 0으로 설정하는데, 이건 OS timer 를 사용안한다는겁니까?

OSCR 와 매치레지스터가 같아지면 인터럽트가 발생되는데, 매치레지스터 값을 0으로 초기화 하는게 좀 의아합니다.

Kernel 에서 다시 설정하는 루틴이 따로 있는지???