ATmega8 externer Interrupt 0 C Beispiel
Ein Codebeispiel, wie der ATmega8 am Interrupt-Eingang 0 auf eine steigende Flanek reagiert.
Beschreibung Die steigende Flanke des externen Interrupt 0 des ATmega8 toggelt in der Interruptroutine einen Digitalport. |
Please visit: the four |
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 << ISC01)|(1 << ISC00); // INT0 is executed on rising 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
Gelb: digitalausgang, der in der Interruptroutine gesetzt wird.
|