Hi, ich habe das Problem, das ich es nicht hinbekomme ein Programm zu schreiben das der Mikrocontroller (in meinem Fall der ATTiny12) eine Pause von z.B 20 ms macht. Da ich ein Lauflicht realisieren möchte das jeweils die LED's z.B alle 20 ms um jeweils eine weiter springen. Könnte mir jemand vielleicht helfen ? Für die Pausen benutzte ich sonst immer folgenden Code: clr r16 Zaehl: Dec r16 BRNE Zaehl doch dieser ist etwas zu unflexibel !
Hallo Dennis: man kann Unterprogramm als Pausen progr. z.b. .nolist .include "1200def.inc" .list ser r17 out ddrb,r17 out portb,r17 start: sbi portb,1 rcall pause cbi portb,1 rcall pause sbi portb,1 rjmp start pause: ldi r16,5 loop: dec r16 brne loop ret
Und das ganze als Lauflicht: .nolist .include "1200def.inc" .list ser r16 out ddrb,r16 out portb,r16 ;-------------------------------------- ldi r17,1 start: rol r17 out portb,r17 rcall pause rjmp start ;-------------------------------------- pause: ldi r18,5 loop: dec r18 brne loop ret
Wenn die Pause etwa länger sein soll: Zwei oder mehr Register abwärts zählen! Zwei Zähler durchlaufen 65536 mal die innere Schleife. ; Äußere Schleife clr R0 loop1: ; Innere Schleife clr R1 loop2: dec R1 brne loop2 dec R0 brne loop1 MfG Gerd
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.