steigender und fallender wert

#276147
Lesenswert?
• ▲
▼
oder asm:

loop:

        'mache irgendwas
        '...
  cpi temp, 255    'zähler mit 255 vergleichen
  breq loop2    'wenn 255 dann anfangen mit runter zählen
  inc temp    'temp um 1 erhöhen
  rjmp loop    'zu loop springen

loop2:

        'mache irgendwas
        '...
  cpi temp, 0    'zähler mit 255 vergleichen
  breq loop    'wenn 255 dann anfangen mit rauf zählen
  dec temp    'temp um 1 verniedrigen
  rjmp loop2    'zu loop2 springen
#276148
Lesenswert?
• ▲
▼
Im Prinzip genau so.

Du schnappst Dir ein Register und initialisierst
es mit 0.
Dann machst Du etwas mit dem Wert
und zaehlst ihn hoch. Ist 256 (aka 0, da wir ja 8 bit
Register haben) noch nicht erreicht springst Du zurueck
zu 'mach was mit dem Wert'.
Das war die erste Schleife, wie die zweite aussieht
muesstest Du eigentlich jetzt auch selbst hinkriegen.
Da kannst doch eine Zaehl-Schleife programmieren, oder?
Gast #276152
Lesenswert?
• ▲
▼
Danke euch;-)

nur noch ein Problem
ich habe nicht mehr viele Register Frei und habe schon alles
"verbraten"
und müsste alles im RAM zwischenspeichern mit STS und LDS gibts da auch
noch andere methoden. werte im RAM kan man ja nicht über den umweg eines
Registers verändern oder?
#276154
Lesenswert?
• ▲
▼
> loop:
>
>        'mache irgendwas
>        '...
>  cpi temp, 255    'zähler mit 255 vergleichen
>  breq loop2    'wenn 255 dann anfangen mit runter zählen
>  inc temp    'temp um 1 erhöhen
>  rjmp loop    'zu loop springen
>
> loop2:
>
>        'mache irgendwas
>        '...
>  cpi temp, 0

fang mal oben an und nimm an dass temp den Wert 255 hat

  'mach irgendwas    ; hier machst Du das erste mal was mit 255

  cpi temp, 255      ; ist der Fall
  breq loop2         ; also wird der breq genommen

loop2:

  'mach irgendwas    ; und hier machst du schon wieder was mit 255

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