Hallo zusammen, Ich bin neu auf dem gebiet Assembler programmieren und hätte da mal eine frage: Verwendetes board: Avr STK200 µC: 908515 Habe versucht eine LED blinken zu lassen, hat aber irgendwie net funktioniert. ich bekomm die warteschleife nicht richtig hin!!! Im Anhang befindet sich mein Assembler programm.. was mach ich falsch bzw. wie kann ich unkompliziert eine warteschlefe einbauen?!?!? Vielen Dank schonmal im vorraus Gruß Dany
Hallo, naj, Du hast Dir eine nette logische Falle eingebaut. :) wait2: dec mp mp -1 brne wait2 zurück, wenn mp nicht 0 -> soweit ok hier muß also wegen oben mp IMMER 0 sein. dec mp und hier wird mp -1 = 0xFF brne wait2 und kann hier somit NIE 0 werden. ;) Nimm 2 Register: ldi temp1,100 -> Anzahl Durchläufe clr temp2 loop: dec temp2 brne loop dec temp1 brne loop Gruß aus Berlin Michael
Hey, danke für die schnelle antwort!!! Es funktioniert auf jeden fall, ich seh die leds blinken :D Doch noch einige fragen: Die LEDs blinken recht schnell, wie kann ich dies verlängern? (>Hz) Quelltext: ; Test 1: LED soll mit einem Hz blinken .NOLIST .INCLUDE "8515def.inc" .LIST .DEF temp1 = R16 .DEF temp2 = R17 rjmp main main: ldi temp1,0b11111111 ;PortB wird als Ausgang definiert out DDRB,temp1 ;Ausgangsport wird definiert loop: ldi temp1,0b01010101 ;Läd sofort einsen in R16 ein out PORTB,temp1 ;einsen werden an PortB ausgegeben , resultat LEDs leuchten nicht ;Hier folgt eine Warteschleife ldi temp1,0xff ;Anzahl Durchläufe (hab mal höchsten ;wert genommen) clr temp2 ;WARUM CLR ? was passiert mit dem R? wait: dec temp2 brne wait dec temp1 brne wait ldi temp1,0b10101010 ;Läd sofort nullen in R16 ein out PORTB,temp1 ;nullen werden an PortB ausgegeben , resultat LEDs leuchten ;Hier folgt eine Warteschleife ldi temp1,0xff ;Anzahl Durchläufe clr temp2 wait1: dec temp2 brne wait1 dec temp1 brne wait1 rjmp loop
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.