|
PIC18F26K20 的 timer isr 函式如何撰寫
|
|
新會員
|
請教各位 PIC18F26K20 timer ISR 函式如何撰寫?寫成如下函式,但發現執行時並未進入 isr,且 ulTickCount 的值未更新。
#pragma config WDTEN = OFF #pragma config FOSC = INTIO67
ULONG ulTickCount;
void main (void) { int i;
// Internal OSC setup // OSCCON |= 0x70; // 16 MHZ while ((OSCCON & BIT2) == 0); // wait for stable
INTCON = 0x20; //disable global and enable TMR0 interrupt //INTCON2 = 0x84; //TMR0 high priority INTCON2 = 0x04; //TMR0 high priority RCONbits.IPEN = 1; //enable priority levels TMR0H = 0; //clear timer TMR0L = 0; //clear timer T0CON = 0x82; //set up timer0 - prescaler 1:8 INTCONbits.GIEH = 1; //enable interrupts
while (1); }
//---------------------------------------------------------------------------- // High priority interrupt routine
#pragma code #pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh () { if (INTCONbits.TMR0IF) { //check for TMR0 overflow INTCONbits.TMR0IF = 0; //clear interrupt flag ulTickCount++; } }
//---------------------------------------------------------------------------- // High priority interrupt vector
#pragma code InterruptVectorHigh = 0x08 void InterruptVectorHigh (void) { _asm goto InterruptHandlerHigh //jump to interrupt routine _endasm }
//----------------------------------------------------------------------------
發表於: 2009/10/20 10:22
|
|