Forum: Compiler & IDEs Warum funktionieren nicht beide Interrupt zusammen?


von Kapitän Blei (Gast)


Lesenswert?

Hallo

Warum funktioniert bei mit immer nur ein Interrupt, selbst wenn ich
beide aktiviere? Aber jeder Interrupt einzel geht problemlose.

Ist ein ATMega32


Gruss

Blei

INT0_Initial(void)
{
  MCUCR =(1<<ISC01)|(0<<ISC00);

        //Auf fallende Flanke wird Interrupt ausgelöst

}

INT0_Start(void)
{
  GICR = (1<<INT0);
  //Interrupt aktivieren

}


INT1_Initial(void)
{
  MCUCR =(1<<ISC11)|(0<<ISC10);          //Auf fallende Flanke wird 
Interrupt
ausgelöst

}


INT1_Start(void)
{
  GICR = (1<<INT1);              //Interrupt aktivieren

}

von Peter D. (peda)


Lesenswert?

Du machst 2 Zuweisungen auf das gleiche Register, d.h. nur die letzte
Zuweisung ist gültig.

Du must |= nehmen, wenn Du mehrere Bits nacheinander setzen willst.


Peter

von Kapitän Blei (Gast)


Lesenswert?

Hallo Peter

Danke habe wieder was dazugelernt.


Gruss

Kapitän Blei

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.