Forum: Compiler & IDEs Problem mit externem Interrupt


von Bernd E. (edi)


Angehängte Dateien:

Lesenswert?

Hallo,
ich versuche gerade ein Programm zu schreiben, dass auf externe 
Interrupts (wo ich einen Taster vom STK500 dranhängen habe) reagiert und 
zwar soll bei jedem Tastendruck einfach an den LED's eine von zwei 
Kombinationen angezeigt werden. Leider funktioniert die Sache irgendwie 
gar nicht richtig, die Anzeige ändert sich auch ohne Tastendruck 
ständig, was ich mir aber nicht so wirklich erklären kann.
Das mit den LED's ist eigentlich auch nur zum testen gedacht, denn es 
sollte eigentlich mit dem Tastendruck der Controller aus den Sleepmode 
aufgeweckt werden können.

Kann mir vielleicht jemand einen Tipp geben, wo mein Fehler liegen 
könnte!

mfg
Bernd

von Karl heinz B. (kbucheg)


Lesenswert?

Was für ein Controller ist denn das?

Aus Analogiegründen: Sollte hier nicht ISC41 und ISC40
auftauchen und nicht ISC01 und ISC00

von Bernd E. (edi)


Lesenswert?

Hi,
es handelt sich um einen ATMega128.

WAs soll ich statt ISC01, ISC00 schreiben?

von Karl heinz B. (kbucheg)


Lesenswert?

Na ja, ISC40 und ISC41
Und die sind nicht in EICRA, sondern in EICRB


   // Int 4 umstellen auf steigende Flanke
   EICRB |= ( 1 << ISC41 ) | ( 1 << ISC40 );

An dieser Stelle komme ich nicht umhin meinen
obligaten Spruch abzulassen:
 Steht alles im Datenblatt. Atmel veröffentlicht die
 nicht nur so zum Spass.

von Bernd E. (edi)


Lesenswert?

Hi,
danke, hatte den Fehler in der Zwischenzeit auch schon entdeckt, 
funktionieren tut es trotzdem noch nicht.

von Bernd E. (edi)


Lesenswert?

...jetzt funktioniert es, was wieder mal ein spitzen Fehler, man sollte 
schon immer am richtigen PortE anschließen (PORTE STK500 != PORTE 
STK501)!

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.