MyAVR bzw Sisy Assembler-Anfänger

Gast #591776
Lesenswert?
• ▲
▼
Hallo,

bin ein Anfänger und arbeite mit MyAVR und Sisy.

Gibt es bei SISY eine Funktion wo man den Quellcode Schritt für Schritt 
ablaufen lassen kann(Wie bei AVR Studio mit der F11)

Also online in das Programm rein schauen?

Hier ist der Code den ich teilweise aus dem Buch und teiweise selbst 
geschrieben habe.
Könnte mit einer erklären, wie es mit dem warten funktioniert?

inc r16       ; erhöht doch die Zahl um 1 die im Register 16 ist
aber wie geht es weiter?

Wäre echt nett

Gruß
Max

;Start, Power ON, Reset
main:  ldi  r16,lo8(RAMEND)
      out  SPL,r16
      ldi  r16,hi8(RAMEND)
      out  SPH,r16  ;init Stack
      ;Ausgänge
      ldi r16,0b11111111
      out DDRB, r16
      ;Eingänge
      cbi DDRD, 2
      cbi DDRD, 3
      ;Pull up
      ldi r16,0b00001100
      out PORTD, r16

      ldi r16,0b00000000
      ldi r17,0b00000000
      ldi r18,0b00000001


;----------------------------------------------------------------------- 
-
mainloop:  wdr

getKey:     in r24, PIND
            sbrs r24, 2
            rjmp schleife1
            sbrc r24, 3
            rjmp getKey
            rjmp schleife2

schleife1:  inc r16
            brne warte
            inc r17
            brne warte
            rol r18
            rjmp ausgabe
schleife2:  inc r16
            brne warte
            inc r17
            brne warte
            ror r18
            rjmp ausgabe


ausgabe:    out PORTB, r18
warte:      rjmp mainloop
;----------------------------------------------------------------------- 
-
Gast #591850
Lesenswert?
• ▲
▼
Hi

brne warte: brne (Branch (if) not equal)-> Verzweige wenn <>Null

Nach 256 mal 'inc r16' ist r16 wieder Null (+ gesetzten Carryflag)
dann wird mit 'inc r17' weitergemacht, ansonsten Sprung nach 'warte'.

MfG Spess
Gast #591999
Lesenswert?
• ▲
▼
;     16777215 Zyklen:
; -----------------------------
; warte 16777206 Zyklen:
          ldi  R17, $DE
WGLOOP0:  ldi  R18, $6E
WGLOOP1:  ldi  R19, $E4
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
; -----------------------------
; warte 9 Zyklen:
          ldi  R17, $03
WGLOOP3:  dec  R17
          brne WGLOOP3
; =============================

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.