ATmega16 externer Interrupt 1

In diesem Sorucecodebeispiel wird der externe Interrupt 1 des ATmega16 demonstriert.


Beschreibung

Am eingang des Externen Interrupts 1 wird auf eine fallende flanke gewartet. Sobald diese eintritt, wird das Ausgangssignal an PA0 getoggelt.

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

int main(void)
{

    DDRA = 0x01;                       // Setup PA1 as output
    PORTD = 0x08;                      // Activate internal pullupressistor of PD3

    GICR |= (1<<INT1);                 // Enable INT1
    MCUCR |= (1<<ISC11);               // INT1 is executed on falling 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(INT1_vect)
{
    PORTA ^= 0x01;                     // Toggle PA0
}


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

Signalplots

Externer Interrupt 1

Gelb: Digitaler Ausgang PA0
Blau: Interrupt 0 Eingang (PD3)