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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.