ATmega32 externer Interrupt 2

Dieses eigenständig lauffähige Programm ist ein Beispiel für den External Interrupt 2 des ATmega32.


Beschreibung

Der Eingang des External Interrupt 2 triggert auf eine steigende flanke und toggelt daraufhin den Ausgang PA0.

C Sourcecode

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

int main(void)
{

    DDRA = 0x01;                       // Setup PA1 as output
    PORTB = 0x04;                      // Activate internal pullupressistor of PB2

    GICR |= (1<<INT2);                 // Enable external interrupt INT2
    MCUCSR |= (1<<ISC2);               // INT2 is executed on rising edge
    sei();                             // Set the I-bit in SREG

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

    return 0;                          // This line will never be executed

}

// Interrupt subroutine for external interrupt 1
ISR(INT2_vect)
{
    PORTA ^= 0x01;                     // Toggle PA0
}


Download lauffähiges C-File mit ASCII-Schema: Downloadlink

Signalplots

Externer Interrupt 2

Gelb: Ausgang PA0
Blau: Interrupt 2 Eingang (PB2)