/* interrupt_01.c ATmega88 @ 1MHz */ #include <avr/io.h> #include <avr/interrupt.h> // Einbinden der Headerdatei für Interrupts int main(void) { DDRD &= ~(1<<PD2); // PD2 = Eingang (INT0) DDRB |= (1<<PB1); // PB1 = Ausgang PORTB = 0x00; // PORTB auf low EICRA |= (1<<ISC01)|(1<<ISC00); // Int0 wird durch eine steigende Flanke ausgelöst EIMSK |= (1<<INT0); // Ext. Int0 aktivieren sei(); // Alle Interrupts aktivieren while(1) { } return 0; } ISR (INT0_vect) // Hier beginnt die ISR für den ext. Int0 { PORTB ^= (1 << PB1); // Toggle PB1 }