Hi Freunde Ich habe mal wider eine Frage und zwar ichmöchte ganz simple anhand einen Interrupt ein LED steuern, dafüe habe ich den nachfolgenden Code geschriben. Leider ich krige immer die Fehlermeldung "GICR undeclared, first use..." kann mir vielleicht jemand sagten wie ich das Problem lösen kann und, ob mein code richtig ist, um ein LED per interrupt zu steuern, ode vielleicht hat jemand ein Beispiel für den Atmega88. Das wäre echt lieb besten Dank im voraus //Einschalten einer LED mit Hilfe von einem Tastern #include <avr/io.h> #include <avr/interrupt.h> ISR(INT0_vect) // INT0_vect ist der Interruptvektor. { PORTB |= (1<<PB1); //schaltet die LED ein. } int main (void) { DDRD &= ~(1<<DDD2) | (1<<DDD3); //setzt PD2 (INT0) und PD3 (INT1) auf Eingang DDRB |= (1<<PB1); //setzt PB1 auf Ausgang. Hier ist eine LED angschlossen. MCUCR |= ( 1 << ISC01 ); MCUCR &= ~( 1 << ISC00 ); // The falling edge of INT0 //(Ausloesen des Interrupts bei steigende Flanke an INT0 und INT1) GICR |= (1<<INT0) | (1<<INT1); sei(); while(1) { } return 0; }
1. Schau dir im Datenblatt die Bedeutung des Registers EIMSK an. 2. Dir fehlt die ISR für INT1.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.