min Wert speichern

Gast #106540
Lesenswert?

Hallo,

ich komme irgendwie nicht weiter.

Ich mache eine Analogmessung mit 10 bit mit dem Tiny15

es soll der minimale gemessene wert immer wieder gespeichert werden.

Wie muß ich da vorgehen ?

z.B.

r30 lo Byte
r31 hi Byte

der min wert soll nach

r20 und r21 gespeichert werden

ich belege r21 und r22 mit ff vor

wenn hi byte kleiner ist muß hi und lo gesichert werden

wenn hi gleich ist muß noch das lo verglichen werden und wenn kleiner
gespeichert werden.


hier mal mein bisheriger code:



    cp r22,r31    ;HI Byte vergleichen
    brlo minNeu    ;sprung wenn HI byte kleiner

  rjmp untMin


minNeu:
    mov r21,r30    ;LO Byte ersetzen
    mov r22,r31    ;HI Byte ersetzen
  rjmp MinEnd

untMin:
    cp r22,r31    ;HI Byte vergleichen
    brne MinEnd    ;Sprung wenn HI Byte ungleich

  minLO:
    cp r21,r30    ;LO Byte vergleichen
    brlo LO_neu    ;Sprung wenn LO Byte kleiner

  rjmp MinEnd

LO_neu:
    mov r21,r30



MinEnd:
Gast #106541
Lesenswert?

hi!!
kenne den tinny15 nich, aber vieleicht kannst du ja mit dem zeug was
ich fuer nen mega128 gemacht hab was anfangen !!

  mov temp1,res_val_c1_l  ;letzte min werte sichern
  mov temp2,res_val_c1_h

        cp res_val_c1_l, change1 ;aktuell > letzter min  ???
cpc res_val_c1_h, change2 ;DAS IST GELAUBE ICH DER WICHTIGE TEIL
  brcs comp_max_c1  ; ja dann zu vergleich max
  mov temp1, change1 ;set aktuell = min
  mov temp2, change2
comp_max_c1:
  mov fbin0, res_val_c2_h ;max c2 sichern
  mov fbin1, res_val_c2_l

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