Hallo ,
vieleicht findet ja wer mal etwas Zeit und "Tinte" für "ein, zwei" helfenden Sätzen.
Ich habe mich in RN-Wissen , etwas über PIC Assemblerprogrammierung eingelesen und auch ein funktionierendes LED- Blinkbeispiel zusammn bekommen.
Nur die Warte-Routine habe ich mal orginal übernommen, aber ich verstehe sie nicht ganz...und zwar die Dokumentation, das die Register 256mal durchlaufen werden.
Das sie dekrementiert werden ist mir verständlich , aber ein Register muss doch auch mit einem Wert( 256 ? ) geladen werden und das ist mein grosses Rätsel, das ich das nicht finde.
Hier die Warteschleife:Das Codebeispiel habe ic h aus aus den Tutorial im obigen Link :Das erste ProgrammCode:P0 equ 0x20 ; Variablen definieren (Register benennen) P1 equ 0x21 P2 equ 0x22 Warten movlw 2 ; schreibe "2" für ca. 0,4 s movwf P2 ; ins Register P2 clrf P1 ; lösche Register P1 ("0" für 256 Durchläufe) clrf P0 ; lösche Register P0 ("0" für 256 Durchläufe) decfsz P0,1 ; dekrementiere P0 und überspringe "goto $-1" bei P0 = 0 goto $-1 ; sonst gehe zur voherigen Adresse (Befehl "decfsz P0") decfsz P1,1 ; dekrementiere P1 und überspringe "goto $-4" bei P1 = 0 goto $-4 ; sonst gehe zur aktueller Adresse - 4 (Befehl "clrf P0") decfsz P2,1 ; dekrementiere P2 und überspringe "goto $-7" bei P2 = 0 goto $-7 ; sonst gehe zur aktueller Adresse - 7 (Befehl "clrf P1") return ; springe zurück zum Aufrufer
Leider ist meine Assemblerzeit schon lange her C64er Ära und die des 8085..so das ich nicht mehr so Sattelfest bin .
Wenn mir wer die Güte erweisen würde , mich gedanklich aufzufrischen , warum da was von 256 Durchläufen steht, wäre ich dankbar.
Gruss und Dank
Gerhard
Lesezeichen