Found another bug/issue.
Here's simple code:
Code:
topline var byte [16] 'top part of the screen array
botline var byte [16] 'bottom part of screen
arraywrite topline,["0123456789ABCDEF"]
arraywrite botline,["0123456789ABCDEF"]
FOR X=0 TO 30 step 2 'READ ARRAY INTO VARIABLE, ARRAY MEMBER CHAR=EEPROM OFFSET
if X<=15 then
Y=(botline[x]-48)*8
Z=(botline[x+1]-48)*8 'READ INTO VARIABLE AS TWINS
endif
FOR I=0 TO 7 'HELPER LOOP FOR CHARACTER READING
LCDOUT $FE,$80+c+i 'UPDATE Y POSITION
LCDOUT $FE,$80+x/2 'UPDATE X POSITION
READ Y+I,A 'READ EEPROM BYTES INTO VAR
READ Z+I,B
if topline[x]=32 or botline[x]=32 then a=0
if topline[x+1]=32 or botline[x+1]=32 then b=0 'blanker
if atrib=1 and X<16 then
a=A^%11111111
b=b^%11111111
endif
if a=$FE then a=0
if b=$fe then b=0
LCDOUT a
LCDOUT b 'WRITE TO SCREEN
NEXT I
NEXT X
It should display 0123456789ABCDEF on LCD screen. It does, but there's an issue.
If reading text from 1st declared array (topline), then it is displayed correctly. However, if reading from 2nd declared array (botline), one of characters will be randomly missing in displayed text. This is not issue of my code, because if I do not declare "topline" array, then "botline" reading works fine.
So what this means, 18F45K80 can't handle two 16 byte arrays at same time?
Bookmarks