ADC Interrupt Problem

Gast #58186
Lesenswert?

Hallo !
Ich habe folgendes Problem mit der Programmierung meines
Mikrocontrollers:
Das Programm soll soll später mal so funktionieren, dass ich durch
setzen des ADSC Bits den AD-Wandler starte, und das entsprechende
Unterprogramm ausgeführt wird. Zur gleichen Zeit soll natürlich der
Timer mit entsprechenden Answeisungen weiterlaufen.
Mein Problem ist nun, dass der AD-Wandler garnicht mehr aufhört,
sondern munter weiterarbeit, obwohl er im Single-conversion Modus
arbeiten sollte. Dadurch kommt der Timer dann garnicht mehr an die
Reihe.
Ich weiss nicht, wo mein denkfehler liegt. Es wäre sehr schön, wenn ihn
jemand für mich finden könnte :-)
Anbei liegt der Code, an dem ich derweilen verzweifle.

Vielen Dank schonmal im vorraus !
Angehängte Dateien:
Gast #58187
Lesenswert?

Hallo,
dein Programmstürzt ja ab! Du du rufst nicht oft genug pop auf, bevor
dein ret in der Subroutine relaisaus kommt. Du musst ja davor erst
wieder alles vom Stack abrufen, was Du seit dem Interrupt darauf
abgelegt hast.
Gast #58189
Lesenswert?

nein, wegen:

ADC_ISR:
     push temp
     push r17
     in temp,SREG
     push temp

das musst Du doch auch noch wieder "poppen".

Dass das am Ende von der ADC_ISR steht ist Quatsch, weil das garnicht
durchlaufen wird. Probier mal angehängte Datei!
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren