Hi,
hab mir Programm zu recht gemacht das mit dem Mega8 eine Spannung
überwacht.
vergleich:
ldi div0,low(400)
ldi div1,high(400)
cp erg0,div0
cpc erg1,div1
brge schalten
sbi PORTD,LED
ret
schalten:
cbi PORTD,LED
ret
Doch wie bekomme ich eine Hysterese hin damit die Led im Grenzbereich
nicht flagert?
Wäre für jeden Tip dankbar.
Gruß Michael T
naja ok will mal ned gemein werden, den Hystere Bereich erweiter, du hast ja nen Oberen Punkt an dem dein Zustand dann wirklich "Ein" wird und einen unteren an dem es dann "Aus" wird. Prinzip eines 1Punkt Reglers,
"lern C" das ist aber nicht die Lösung des Problems. Lösung: manche 2 Vergleiche, je nachdem, ob die LED an oder aus ist. Pseudocode: if( LED = an ){ if( i < min ) LED = aus }else{ if( i > max ) LED = an } Peter
vielleich noch ein vergleich mit... sagen wir 420
vergleich > 420 -->led an-->schalten_an
vergleich > 400 -->led an, wert speichern, vergleich mit vorwert wenn
DIF>10-->schalten_an DIF<10-->nich schalten
vergleich < 400 -->led aus-->schalten_aus
nur ne idee
so z.b.
vergleich:
ldi div0,low(400)
ldi div1,high(400)
cp erg0,div0
cpc erg1,div1
brlo led_high ;< 399 sbi PORTD,LED
ldi div0,low(401)
ldi div1,high(401)
cp erg0,div0
cpc erg1,div1
brsh led_low ;>= 401 cbi PortD,LED
ret
led_low:
cbi PORTD,LED
ret
led_high
sbi PORTD,LED
ret
Danke an alle.
Hab das ganze jetzt so gelöst:
ergleich:
sbic PORTD,LED ;Überspring nächsten Sprungbefehl
rjmp led_ein ;wenn LED im PORTD aus ist
rjmp led_aus
led_aus:
ldi div0,low(400) ;Den Wert 400 zum
ldi div1,high(400) ;vergleichen laden
cp erg0,div0 ;und mit dem Ergebnis der
cpc erg1,div1 ;A/D Wandlung vergleichen
brlo led_aus1 ;Ist Ergebnis < Led aus
ret ;zurück
led_aus1:
sbi PORTD,LED ;Led aus
ret ;zurück
led_ein:
ldi div0,low(404) ;Den Wert 404 zum
ldi div1,high(404) ;vergleichen laden
cp erg0,div0 ;und mit dem Ergebnis der
cpc erg1,div1 ;A/D Wandlung vergleichen
brsh led_ein1 ;Ist Ergebnis >= Led ein
ret
led_ein1:
cbi PORTD,LED ;Led ein
ret ;zurück
Gruß
Michael T
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.