Vielen Dank für die Tipps!
Auf die Idee mit dem BEEP Ausgang bin ich noch gar nicht gekommen. Man könnte diesen bei der Initialisierung einmalig aufrufen, und dann müßte er ja ewig weiterlaufen. Ich werde das testen.
Mit Assembler habe ich mich bisher nicht beschäftigt, das mit dem Timer-Output-Compare-Interrupt klingt sehr kompliziert, soweit ich das verstanden habe müßte man dazu die Assembler-Routine des Timers um den Aufruf des IRQ ergänzen. Das wären dann nur max. 20ms Abstand oder?
Was heißt BS - OS? Wie lang ist denn zu lang? In der Interruptroutine steht ungefähr so viel:
#regler
if v_soll < v_ist then goto dekrementieren
if v_soll > v_ist + 5 then goto inkrementieren
#set
PWM = PWM_DA
return interrupt
---
#inkrementieren
PWM_DA = PWM_DA + 1
' Sicherung bei Ausfall des AD-Wandlers
if PWM_DA > 116 then PWM_DA = 116 ' obere Grenze PWM 45% ~ 2V
goto set
---
#dekrementieren
PWM_DA = PWM_DA - 1
' Sicherung bei Ausfall des AD-Wandlers
if PWM_DA > 116 then PWM_DA = 0 ' untere Grenze PWM 0% ~ 0V
goto set
---
Gibt es mit dieser Menge schon Stack-Probleme?
Lesezeichen