www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik schleifendurchgang in asm über 255


Autor: bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, ich habe einen schleifenzaehler von 266.
ich weiss jetzt nicht, wie ich den in einem durchlauf reingekomme mit 
asm.
brauche mal eine denkanstoss.
habe jetzt aufgeteilt in 255 und in 11.

Sub Ir_code_6666()
   ldi r17,255
Wgloop1:
   Portb.1 = 1
   Waitus 12
   Portb.1 = 0
   Waitus 12
   dec r17
   brne wgloop1

   ldi r17,11
Wgloop2:
   Portb.1 = 1
   Waitus 12
   Portb.1 = 0
   Waitus 12
   dec r17
   brne wgloop2
End Sub

Autor: bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wieviel schaltvorgänge/schleifendurchgänge werden eigentlich 
durchgeführt , wenn ich 200 eingebe? sind es 200 oder 201.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bastler wrote:
> hallo, ich habe einen schleifenzaehler von 266.
> ich weiss jetzt nicht, wie ich den in einem durchlauf reingekomme mit
> asm.
> brauche mal eine denkanstoss.
> habe jetzt aufgeteilt in 255 und in 11.

Ist eine Möglichkeit.
Eine andere wäre es 2 mal je 133 Durchgänge zu fahren

     ldi r18, 2
Wgloop0:
     ldi r17, 133
Wgloop1:
     Portb.1 = 1
     Waitus 12
     Portb.1 = 0
     Waitus 12

     dec r17
     brne Wgloop1

     dec r18
     brne Wgloop0

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bastler wrote:
> wieviel schaltvorgänge/schleifendurchgänge werden eigentlich
> durchgeführt , wenn ich 200 eingebe? sind es 200 oder 201.

Spiel es mal in Gedanken durch, wenn du 1 angibst. Wieviele
Durchgänge sind es bei einer Angabe von 2? Bei 3? Was schlieest
du daraus für 200?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

da der AVR nicht angegeben ist:

ldi r16,low(266)
ldi r17,high(266)

loop:

 ; hier Deine Geschichten

   dec r16
   brne loop

   dec r17
   brne loop


oder

ldi zl,low(266)
ldi zh,high(266)

loop:

 ; hier Deine Geschichten

 sbiw Z,1
 brne loop

Gruß aus Berlin
Michael

Autor: bone (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ldi r16,low(266)
ldi r17,high(266)

loop:

 ; hier Deine Geschichten

   dec r16
   brne loop

   dec r17
   brne loop


^^ AUTSCH
wären das nicht 12 * 255 durchgänge????

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bone wrote:
> ldi r16,low(266)
> ldi r17,high(266)
>
> loop:
>
>  ; hier Deine Geschichten
>
>    dec r16
>    brne loop
>
>    dec r17
>    brne loop
>
>
> ^^ AUTSCH
> wären das nicht 12 * 255 durchgänge????

Nein, das sind nur 10 Durchgänge.

Richtig wäre:

ldi r16,low(266)
ldi r17,high(266)

loop:

 ; hier Deine Geschichten

   subi r16, 1
   sbci r17, 0
   brne loop


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.