Found another bug/issue.
Here's simple code:
It should display 0123456789ABCDEF on LCD screen. It does, but there's an issue.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
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