Hallo Forum,
ich will gerade die Interrupts von meinem AT90USBKey verwenden und habe mir Testweise ein Programm geschrieben, was mir eine Meldung ausgibt wenn ein Interrupt aktiviert wurde.
Im Moment löse ich die Interrupts über den verbauten Joystick aus, aber nach einer bestimmten Anzahl an Interrupts reagiert der Mikrocontroller nicht mehr. Die Anzahl ist dabei aber immer Unterschiedlich...
Weiß jemand woran das liegen kann?
Mein Code ist folgender;
Danke für die Hilfe!Code:/* * Interrupt.c * * Created: 20.02.2014 07:15:06 * Author: Daniel.KAmpert */ #include <stdlib.h> #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "uart.h" void Setup(void); ISR(INT4_vect) { uart_puts("INT4 Interrupt!\n\r"); } ISR(INT5_vect) { uart_puts("INT5 Interrupt!\n\r"); } int main() { Setup(); for (;;) { } } void Setup(void) { // UART initialisieren uart_init(UART_BAUD_SELECT(57600, 8000000)); // IO als Ausgang einstellen DDRE &= (0<<DDE4) & (0<<DDE5); // Pull-up Widerstände einschalten PORTE |= (1<<PE4) | (1<<PE5); // Interrupt bei fallender Flanke EICRB = (1<<ISC41) | (0<<ISC40) | (1<<ISC41) | (0<<ISC40); // Interrupts aktivieren EIMSK = (1<<INT4) | (1<<INT5); // Globale Interrupts freigeben sei(); }







Zitieren


Lesezeichen