Forum: Mikrocontroller und Digitale Elektronik hysterese assembler


von Laza (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!!!

ganz grob hab ich ein programm das einen ADC wert einließt, und je 
nachdem 2 Relais(ports) schaltet (dazu noch LED´s zur sichtbaren 
kontrolle).
ein relais wird bei 210 aus geschaltet und bei unter 100 wieder ein 
geschlatet. das ist demnach meine erste hysterese, die einwandfrei 
funktioniert. geht die spannung noch weiter runter, wird ein 2 Relais 
geschaltet, nur krieg ich hier keine hysterese zustande, da durch die 
verzweigungen immer das 1 relais mit beeinflusst werden.
habe die entsprechende sequenz mal angehängt.
irgendwie find ich die Lösung gerade nicht wirklich, werd mich aber noch 
ein bisschen hinsetzen.

Vielen Dank für eure hilfe.

von Hannes L. (hannes)


Lesenswert?

Vielleicht solltest Du es als Fensterdiskriminator programmieren...

von 0 bis 60: mache dies...
von 61 bis 100: mache das...
von 101 bis 140: mache jenes...
von 141 bis 200: mache wieder was anderes...
über 200: rufe Instandhaltung an und melde Fehler...

Zahlen-Bereiche und Aktionen sind jetzt aus der Luft gegriffen, aber so 
in etwa könnte es gehen. Für jede Aktion gibt es eben ein "Fenster", in 
dem sie ausgeführt wird.

In ASM könnte das so aussehen:

 cpi r18,60
 brlo aktion1
 cpi r18,100
 brlo aktion2
 cpi r18,140
 brlo aktion3
 cpi r18,200
 brlo aktion4
 rjmp melde_fehler

aktion1 bis aktion4 nimmt die entsprechenden Schalthandlungen vor und 
springt zur Mainloop zurück. Es wird immer nur zu einer Aktion 
verzweigt, wobei in diesem Beispiel die unteren Werte Vorrang haben.

...

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.