this works
@ da "say \"Hello\"\0"
this works
@ da "say \"Hello\"\0"
db is definitely an easier way to pack a mixed string data statement like "say",34,"hello",34,0 . funny I could never see the point of db until now
PICs always have hidden surprises ....
Ok, understood also indirect addressing now, thanks for your patience :-)
Hi:
I use this routine to send eeprom stored msg's to display LCD.
It can be modified to send then to a string...
I hope this helps...
'************************************************* ***************
'USED VARS:
SDAT VAR PORTD.1 'I2C EEPROM DATA 'ADJUST TO USED PINS AND
SCLK VAR PORTD.0 'I2C EEPROM CLOCK 'MAKE THEM INPUTS IN USED TRIS REG.
CHAR VAR BYTE
SLAVE VAR BYTE
EEADDR VAR WORD
SLAVE = $A0 'EEPROM SLAVE ADDRESS
'***** SUB TO DISPLAY MSGS STORED IN EEPROM ****************
MSG_DISP:
GOSUB CLRDISP 'CLEAR SCREEN
MSG:
LEENXT: I2CREAD SDAT,SCLK,SLAVE,EEADDR,[CHAR] 'SIN CLEAR
IF CHAR => $80 THEN
LCDOUT $FE,CHAR
GOTO INCADD
ENDIF
IF CHAR <> 0 THEN
LCDOUT CHAR
INCADD: EEADDR = EEADDR + 1
GOTO LEENXT
ENDIF
RETURN
'************************************************* *************
'TO CALL THE ROUTINE:
'SET EEPROM ADDRES:
'YOUR STRING CAN HAVE ANY LENGTH AND MUST BE TERMINATED WITH A NULL CHAR
'"00"
'*********************************************
EEADDR = $0350 'WHEREVER YOUR STRING STARTS
GOSUB MSG_DISP
'*********************************************
' YOU MUST USE AN EEPROM WITH WORD ADDRESS (25LC32A,OR BIGGER)
'PROGRAMM YOUR EEPROM WITH MSGS ENDED WITH 00 (NULL) AND TAKE NOTE OF
'THE START ADDRESSES.
'AND THATS ALL...
Greetings...
Ruben de la Pena V.
Bookmarks