Timer ansteuern Kategorie: Progr. Assembler, TaskingTools, OS (von Thomas, http://www.tho-bai.de - 25.01.2005 19:26) | ||
| ||
Hallo, ich möchte in Assembler LEDs, die an Port 1 angeschlossen sind blinken lassen. Ich habe dies breits mit Hilfe zweier geschachtelter Schleifen mit NOP-Befehlen realisiert. Dies ist natürlich sehr unschön. Ich möchte dies also nun mit Hilfe eines Timers realisieren. Ich habe hier nun Timer T3 gewählt. Hier habe ich aber anscheinend noch ein kleines Verständnisproblem. Mein Code sieht folgenderma�en aus: T3_ EQU 0FE42h EXTR #1 MOV DP1L,#0FFh ;P1L als Augang MOV P1L,#0BBh MOV R1,#500 ;Intervall b_loop: CALL init_timer ;Timer aufrufen XOR P1L,#0BBh ;LEDs invertieren jmp b_loop ;Endlosschleife init_timer: mov T3IC,#0 ;Interrupt ausschalten mov T3CON,#1000111B ;Timer starten,Auflösung 51,2us timer: EXTS #0,#1 mov r4,T3_ ; Timer 4 in r4 laden cmp r4,r1 ; jmpr cc_UGE, timeout ;r4>=r1 => timeout jmpr timer timeout: ret Es scheint nun, dass die "Timer"-Schleife nie beendet wird. Was genau steht nun eigentlich in T3? Wo liegt hier mein "Denkfehler"? Benötige ich für diese Aufgabe, vielleicht auch gar keinen GPT sondern eher die CAPCOM-Einheit? Au�erdem würde mich interessieren, wie ich beispielsweise ein Intervall von 2s berechnen kann... Für eure Hilfe schon mal vielen Dank Gru� Thomas Meine Seite: http://www.tho-bai.de | ||
Antwort schreiben Antworten: Re: Timer ansteuern (von Thomas - 25.01.2005 19:55) Re: Timer ansteuern (von André H. - 27.01.2005 11:56) |