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.
Tried both PBP 3.16 and PBPL. No difference.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
Post the complete code that doesn't work.I just wrote another code, which simply reads values of array and writes data on 1602LCD.
Issue still exists
Thanks, sure
this weekend![]()
The "complete" code is about 700 lines (and it is not complete yet).
Found another bug.
I call some subroutine, which uses own set of variables (verified)
after calling it, value of totally different variable (not used in that part of code) gets random values.
Very disturbing.
Can this be compiler issues or maybe faulty chip itself?
if you can produce a minimal, complete and verifiable example [MCVE] that demonstrates the problem it would be the firstFound another bug.
I call some subroutine, which uses own set of variables (verified)
after calling it, value of totally different variable (not used in that part of code) gets random values.
Very disturbing.
Can this be compiler issues or maybe faulty chip itself?
ever case. do continue
Warning I'm not a teacher
You just said...The "complete" code is about 700 lines (and it is not complete yet)
That's the code that's 700 lines?I just wrote another code, which simply reads values of array and writes data on 1602LCD.
Issue still exists
If you're having issues then continuing to add more code isn't going to help.
You should stop, and start trimming things down bit by bit until it starts working.
Then you'll know what to look at.
While compiler and chip issues are always a possibility, there's a much better chance you're just doing something wrong.
No that different code
Now I'm back to "big" code.
I'm trying now to isolate the problem and writing all from the scratch, part by part, verifying.
Bookmarks