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.