Forum: Mikrocontroller und Digitale Elektronik STK 500 Atmega88 Interrupt


von Aron (Gast)


Lesenswert?

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;

}

von Stefan B. (stefan) Benutzerseite


Lesenswert?

1. Schau dir im Datenblatt die Bedeutung des Registers EIMSK an.
2. Dir fehlt die ISR für INT1.

von Klaus W. (mfgkw)


Lesenswert?

3. Man darf Quelltext auch gerne lesbar formatieren.

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
Noch kein Account? Hier anmelden.