Forum: Mikrocontroller und Digitale Elektronik Steuersignal zwischen ISR und main


von Jens K. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

habe ei simples Programm geschrieben, und zwar soll bei Betätigung einer 
Tast ne LED leuchten; ist der Taster nicht betätigt ist auch die LED 
aus. Den Tastereingang wollte ich durch Timerinterrupt abtasten. In 
meiner ersten Version habe ich die Abtastung in der ISR gemacht und das 
hat auch wunderbar funktioniert. Nun wollte ich die ISR bisschen 
abspecken und die eigentliche Abfrage in main machen. Jedoch läuft es 
nicht so, wie ich das gewollt habe.
Daraufhin habe ich die ISR-Funktion in die while (1) - Schleife gepackt 
(ohne Interrupt; siehe funktioniert.c) und das funktioniert!

Nun also die Frage: Warum funktioniert die ISR nicht?

Viele Grüße
Jens

von Jens K. (Gast)


Lesenswert?

hat denn keiner eine Idee?

von Andreas W. (geier99)


Lesenswert?

Jens K. schrieb:
> hat denn keiner eine Idee?

Ich kenne Deinen verwendeten Prozessor leider nicht.

Wird denn überhaupt ein Interrupt ausgelöst? Hast Du den Interupt 
richtig initialisiert?

Reduzier doch mal Dein Programm so, dass dur nur flag==1 abfrägst und 
dann immer die LED toggelst. So siehst Du, ob die ISR überhaupt 
aufgerufen wird.

Gruß
  Andreas

von Jens K. (Gast)


Lesenswert?

Andreas W. schrieb:
> Reduzier doch mal Dein Programm so, dass dur nur flag==1 abfrägst und
> dann immer die LED toggelst. So siehst Du, ob die ISR überhaupt
> aufgerufen wird.

Hab ich gemacht; die ISR wird aufgerufen.
Wäre es theoretisch möglich, dass die ISR zu schnell aufgerufen wird?

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.