Stránka 1 z 1
MPLAB Ide a knihovny
Napsal: 23 úno 2013, 18:33
od fikes
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.
Napsal: 23 úno 2013, 18:40
od Andrea
Napsal: 24 úno 2013, 09:21
od MiloPS3
hlavni 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
OBR.ASM
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
Napsal: 24 úno 2013, 14:38
od fikes
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.
Napsal: 24 úno 2013, 16:44
od MiloPS3
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
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
program se vrati na PC+1 odkad byl volan
Napsal: 25 úno 2013, 16:01
od MiloPS3
tak jak ? na com si se zasek ? ...
Napsal: 25 úno 2013, 21:33
od fikes
Laboruji s tím a zatím mě to nejde, při exportu do *.hex se data ze souboru s definicí znaku zapíšou, kontrola proběhne úspěšně, byty se však nenačítají. Není třeba nastavit nějaký registr v INIcializaci?
Napsal: 25 úno 2013, 22:05
od MiloPS3
ukaz kod...
Napsal: 25 úno 2013, 22:11
od fikes
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ů
Napsal: 26 úno 2013, 07:46
od MiloPS3
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