Forum: Mikrocontroller und Digitale Elektronik min Wert speichern


von Mario (Gast)


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:

von juergen klauck (Gast)


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

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.