PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einfacher LED-Test mit Assembler



kautz
10.12.2005, 21:08
Ich möchte eine LED an PortA testen.
Kann dieser Assemblercode funktionieren? Bei der org Anweisung bin ich mir überhaupt nich sicher. Bzw. wo ich die Variablen hinschreibe.
Ich benutze den 18F458.


title "Programm um LED zu testen"
processor 18F458

org 0x0020; Ist das der richtige Bereich für das Prog?

STATUS equ 03h
TRISA equ 85h
PORTA equ 05h
Count1 equ 08h
Count2 equ 09h

;************************************************* **********************
bsf STATUS,5
movlw 00h
movwf TRISA
bcf STATUS,5
;************************************************* *********************

Start movlw 02h
movwf PORTA
Loop1 decfsz Count1,1
goto Loop1
decfsz Count2,1
goto Loop1

movlw 00h
movwf PORTA

Loop2 decfsz Count1,1
goto Loop2
decfsz Count2,1
goto Loop2

goto Start
;************************************************* *******************
END

ReSeT
11.12.2005, 13:19
Hi,

ich kann auf Anhieb keine Fehler erkennen, ich habe mal kurz einen Blick ins Datenblatt geworfen, hieraus ging hervor, daß der Programmspeicher von 20h bis 3FFFh geht (Low Priority Interrupt Vector liegt bei 18h und ist meiner Meinung nach 2 Bytes groß) , somit solltest Du mit deiner org Anweisung goldrichtig liegen.

Gruß

ReSeT

stegr
11.12.2005, 13:39
bsf STATUS,5
..................^^
Da dürfte ein Fehler liegen, denn das Bit gibts laut Datenblatt nicht ;)
Die Bankauswahl ist bei den PIC18 grundlegend anders, wie bei den PIC16. Da schaust du dir am besten nochmal das Datenblatt oder passenden Beispiel-Code an...

Ansonsten kann ich dir wärmstens den C-Compiler von Microchip empfehlen, den es für die 18er kostenlos gibt. :-)
Verwende den selber und kann ihn wirklich empfehlen - macht sehr vieles einfacher.

Edit: Wenn du wenig RAM brauchst, kannste die Access Bank nehmen - da sind die unteren 96 Byte vom RAM und die ganzen SFR drinnen. Das ist dann das a=0 bei den Opcodes. Ansonsten ist das BSR jetzt 4 Bit groß und da schauste dir am besten mal Seite 47 im Datenblatt an.

MfG
Stefan