Forum: Mikrocontroller und Digitale Elektronik PIC18 Timer overflow PIR bits


von Balduin (Gast)


Lesenswert?

Hallo,
sagt mal, wenn durch einen Timeroverflow das interrupt flag bit (z.B. 
TMR3IF) gesetzt wird, wird es dann auch mal zurückgesetzt oder muss ich 
das selbst machen?

Danke für etwaige Hilfe!

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Hallo,

mußt du selbst löschen. Hier ein Beispiel:

/** V E C T O R  R E M A P P I N G 
*******************************************/
#pragma code

extern void _startup (void);        // See c018i.c in your C18 compiler 
dir
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800
void _reset (void)
{
    _asm goto _startup _endasm
}
#pragma code

#pragma code _HIGH_INTERRUPT_VECTOR = 0x000808
void _high_ISR (void)
{
        _asm goto high_isr _endasm
}

#pragma code _LOW_INTERRUPT_VECTOR = 0x000818
void _low_ISR (void)
{
    _asm goto low_isr _endasm
}
#pragma code

/** D E C L A R A T I O N S 
**************************************************/
/*********************************************************************** 
*******
 * Function:        void high_isr(void)
 ************************************************************************ 
*****/
#pragma interrupt high_isr
void high_isr(void)
{
  if (INTCONbits.TMR0IE)
  {
      if (INTCONbits.TMR0IF)
        {
        TMR0H=0x48;
        TMR0L=0xE4;
        INTCONbits.TMR0IF=0;
        }
  }

}

/*********************************************************************** 
*******
 * Function:        void low_isr(void)
 ************************************************************************ 
*****/
#pragma interruptlow low_isr
void low_isr(void)
{
}
#pragma code

Gruß Sascha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.