just saying... "Problem is definitely in arrays... but as soon their total length exceeds 24 bytes, issues start to appear. " doesn't seem to pan out.
The following reads three 16-byte arrays (48 bytes total) 20K times and verifies the arrayreads. No errors.
Same with the original two 16-byte arrays.
Code:
' device = 18F45K80
topline var byte [16] 'top part of the screen array
botline var byte [16] 'bottom part of screen
line3 var byte [16] 'more array data
ix var byte
ct var byte
cb var byte
c3 var byte
i var word
fail var word
fail = 0
for i = 0 to 20000
' clear arrays
for ix = 0 to 15
topline[ix] = 0
botline[ix] = 0
line3[ix] = 0
next ix
' read array data
arraywrite topline,["ABCDEFGHIJKLMNOP"]
arraywrite botline,["QRSTUVWXYZ[\]^_`"]
arraywrite line3, ["abcdefghijklmnop"]
'read array char by char and check
for ix = 0 to 15
ct = topline[ix]
if (ct-"A" <> ix) then fail = fail + 1
cb = botline[ix]
if (cb-"Q" <> ix) then fail = fail + 1
c3 = line3[ix]
if (c3-"a" <> ix) then fail = fail + 1
next ix
next i
' check for failure
if (fail > 0) then
i = fail
endif
Tried both PBP 3.16 and PBPL. No difference.
I just wrote another code, which simply reads values of array and writes data on 1602LCD.
Issue still exists
Post the complete code that doesn't work.
Bookmarks