ATmega8 external interrupt

Codebeispiel für den external Interrupt des ATmega8


Beschreibung

Der external Interrupt 0 des ATmega 8 reagiert in diesem Beispielcode auf positive und negative Flanke. In der Routine des external interrupt wird ein Digitalausgang getoggelt.

C Sourcecode

#include <avr/io.h>
#include <avr/interrupt.h>

int main(void)
{

     DDRB = 0x01;                       // Setup PB0 as output
     PORTD |= 0x04;                     // Activate pullupressistor of PD2
     GICR |= (1 << INT0);               // Enable INT0
     MCUCR |= (1 << ISC00);             // INT0 is executed on every edge

     sei();                             // Set the I-bit in SREG

     for(;;);                           // The main loop stays empty and
                                        // could contain some code you want.

     return 0;                          // This line will never be executed
}


// Interrupt subroutine for external interrupt 0
 ISR(INT0_vect)                            
{
     PORTB ^= 0x01;                     // Toggle PB0

}

Download C-Sourcefile mit ASCII-Schema: C-Sourcefile mit ACII-Schema

Signalplots

ATmega8 external interrupt plot

Gelb: Interrupt Routine Ausgang

Blau: External Interrupt Eingang