hysterese assembler

Gast #880273
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.
Angehängte Dateien:
#880366
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.

...

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