MPLAB Ide a knihovny
Moderátor: Moderátoři
MPLAB Ide a knihovny
Píšu si program v MPLAB Ide a jelikož si dělám znaky na grafický displej, rád bych tuto knihovnu uložil do zvláštního souboru. Nemáte někdo zkušenost jak se tato knihovna vytvoří a jak by měla vypadat hlavička souboru a jak ho spojit s hlavním *.asm? Jakou koncovku by měl soubor mít? Děkuji předem za radu.
Google nefunguje? http://microchip.wikidot.com/mplab:how- ... -libraries
hlavni asm
OBR.ASM
Kód: Vybrat vše
LIST P=12F675, R=DEC
INCLUDE <P12F675.INC>
INCLUDE "OBR.ASM"
errorlevel -302
W_IMG1
CLRF COUNT4
MOVLW HIGH IMG1
MOVWF PCLATH
MOVF COUNT4,W
CALL IMG1
.
.
W_IMG2
CLRF COUNT4
MOVLW HIGH IMG2
MOVWF PCLATH
MOVF COUNT4,W
CALL IMG2
Kód: Vybrat vše
;***********************************************************
ORG 0X200
IMG1
ADDWF PCL,F
RETLW 0X00
RETLW 0X00
RETLW 0X00
RETLW 0XE0
RETLW 0X10
.
.
;max 254 x
;***********************************************************
ORG 0X300
IMG2
ADDWF PCL,F
RETLW 0X00
RETLW 0X00
RETLW 0X00
.
.
;max 254 x
Děkuji za radu, ale ještě dotaz, po načtení bytu do W ho potřebuji odelat pomocí WR_LCD na displej. Tento příkaz budu volat po CALL IMG1 ?
Poté se budu vracet zpět na V_IMG1 ? Hodnota HIGH IMG1 je zřejmě počet bytů které chci odeslat. K čemu je COUNT4, kdy se do něj přičítá? Z manuálu chápu, že pokud budu volat 3x CALL (nebo GOTO, RETURN) bude hodnota HIGH IMG1 3x posílaný počet bytů na displej.
Poté se budu vracet zpět na V_IMG1 ? Hodnota HIGH IMG1 je zřejmě počet bytů které chci odeslat. K čemu je COUNT4, kdy se do něj přičítá? Z manuálu chápu, že pokud budu volat 3x CALL (nebo GOTO, RETURN) bude hodnota HIGH IMG1 3x posílaný počet bytů na displej.
ne.ne .ne,pocet bytu je v count4,ti spravne nastavi PCLATH aby to fungovalo (to je vysvetlovani na dlouho),
byl to jen vytazek takle to vypada cely
program se vrati na PC+1 odkad byl volan
Kód: Vybrat vše
MOVLW HIGH IMG1
MOVWF PCLATH
byl to jen vytazek takle to vypada cely
Kód: Vybrat vše
W_IMG1
CLRF COUNT4
MOVLW HIGH IMG1
MOVWF PCLATH
MOVF COUNT4,W
CALL IMG1
CALL WRITE_DAT
INCF COUNT4,F
MOVF COUNT4,W
SUBLW .252
BTFSS STATUS,Z
GOTO $-7
RETURN
V hlavním programu toto (podprogram):
W_LOGO
CLRF COUNT4
MOVLW HIGH LOGO1
MOVWF PCLATH
MOVF COUNT4,W
CALL LOGO1
CALL _parameter
INCF COUNT4,F
MOVF COUNT4,W
SUBLW .95
BTFSC STATUS,Z
GOTO $-9
RETURN
v programu s hodnotami toto (96bytů)
ORG 0x900
LOGO1
ADDWF PCL,F
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
;--- 2 ---
RETLW 0x81
RETLW 0x81
RETLW 0xFB
RETLW 0xF7
RETLW 0xFB
RETLW 0x81
;--- 3 ---
RETLW 0x81
RETLW 0xFF
RETLW 0x81
RETLW 0x81
......... celkem 96 bytů
W_LOGO
CLRF COUNT4
MOVLW HIGH LOGO1
MOVWF PCLATH
MOVF COUNT4,W
CALL LOGO1
CALL _parameter
INCF COUNT4,F
MOVF COUNT4,W
SUBLW .95
BTFSC STATUS,Z
GOTO $-9
RETURN
v programu s hodnotami toto (96bytů)
ORG 0x900
LOGO1
ADDWF PCL,F
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
RETLW 0xFF
;--- 2 ---
RETLW 0x81
RETLW 0x81
RETLW 0xFB
RETLW 0xF7
RETLW 0xFB
RETLW 0x81
;--- 3 ---
RETLW 0x81
RETLW 0xFF
RETLW 0x81
RETLW 0x81
......... celkem 96 bytů
chyba, koukni co tam mam ja
chyba , je to moc vysoko , dej ji do max 0x700, _parameter tam musi bejt taky , nebo si musis nastavit PCLATH
Kód: Vybrat vše
BTFSC STATUS,Z
Kód: Vybrat vše
ORG 0x900