Witam. Mam problem z ustawieniem timera0 w tym mikrokontrolerze. Chcialem by generowal on przerwania co ok. 400us a obserwowane na oscyloskopie ok. 10ms. Mikrokontroler pracuje z oscylatorem wewnetrznym "INT RC-CLKOUT on RA6, Port on RA7". Tak jest ten tryb sygnalizowany w MPLAB. Przy ustawieniu drugiego trybu wewnetrznego generuje on podobnie. Pisze program na niego w jezyku C dla studenckiej wersji kompilatora C18. Ustawienia rejestrow konfiguracyjnych oscylatora: OSCCONbits.IRCF0=0; OSCCONbits.IRCF1=1; OSCCONbits.IRCF2=1; Ustawienia rejestrow Timer0: T0CONbits.T0PS0=0; T0CONbits.T0PS1=0; T0CONbits.T0PS2=0; T0CONbits.PSA=1; T0CONbits.T016BIT=0; T0CONbits.T0SE=0; T0CONbits.T0CS=0; T0CONbits.TMR0ON=1; I rejestr przerwan: INTCONbits.T0IF = 0; INTCONbits.T0IE = 1; INTCONbits.GIE = 1;
Na poczatku przerwania od T0 TMR0L -= 0x85; // reload INTCONbits.T0IF = 0;
I na koniec przerwania uruchamiam je na nowo: INTCONbits.GIE = 1;
Mimo moich staran niestety przerwania timera sa regularnie co 10ms. Prosze o pomoc.
Jacek M.