MPLAB Ide a knihovny

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
fikes
Příspěvky: 70
Registrován: 15 lis 2005, 01:00
Bydliště: Trutnov

MPLAB Ide a knihovny

#1 Příspěvek 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.

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#2 Příspěvek od Andrea »


Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#3 Příspěvek 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

Uživatelský avatar
fikes
Příspěvky: 70
Registrován: 15 lis 2005, 01:00
Bydliště: Trutnov

#4 Příspěvek 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.

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#5 Příspěvek od MiloPS3 »

ne.ne .ne,pocet bytu je v count4,

Kód: Vybrat vše

		MOVLW    HIGH IMG1
      MOVWF    PCLATH 
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

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#6 Příspěvek od MiloPS3 »

tak jak ? na com si se zasek ? ...

Uživatelský avatar
fikes
Příspěvky: 70
Registrován: 15 lis 2005, 01:00
Bydliště: Trutnov

#7 Příspěvek 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?

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#8 Příspěvek od MiloPS3 »

ukaz kod...

Uživatelský avatar
fikes
Příspěvky: 70
Registrován: 15 lis 2005, 01:00
Bydliště: Trutnov

#9 Příspěvek 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ů

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#10 Příspěvek od MiloPS3 »

chyba, koukni co tam mam ja

Kód: Vybrat vše

BTFSC STATUS,Z 
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

ORG 0x900

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“