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,

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

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

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