18F4620 chip
I can read data fine but when I go to write it appears that I am writing the same data to all EEPROM locations. I am only putting in the relevant code. The entire code is 1400 lines.
Code:Stage1TOnS data word 0000 ''''''''''''' Stage1TOffS data word 10000 Stage1ROnS data word 0000 Stage1ROffS data word 11000 Stage2TOnS data word 0800 ''''''''''''' Stage2TOffS data word 12000 Stage2ROnS data word 0000 Stage2ROffS data word 13000 Stage3TOnS data word 1200 ''''''''''''' Stage3TOffS data word 14000 Stage3ROnS data word 0000 Stage3ROffS data word 15000 Stage4TOnS data word 1500 ''''''''''''' Stage4TOffS data word 16000 Stage4ROnS data word 0000 Stage4ROffS data word 17000 Stage5TOnS data word 0400 ''''''''''''' Stage5TOffS data word 18000 Stage5ROnS data word 6800 Stage5ROffS data word 19000 Stage6TOnS data word 0800 ''''''''''''' Stage6TOffS data word 20000 Stage6ROnS data word 7000 Stage6ROffS data word 21000 Stage7TOnS data word 1200 ''''''''''''' Stage7TOffS data word 22000 Stage7ROnS data word 23000 Stage7ROffS data word 24000 Stage8TOnS data word 1600 ''''''''''''' Stage8TOffS data word 25000 Stage8ROnS data word 2000 Stage8ROffS data word 26000 Stage1TrigS data byte 0 Stage2TrigS data byte 0 Stage3TrigS data byte 0 Stage4TrigS data byte 0 StagesX VAR WORD[32] StagesY VAR BYTE[16] Index VAR BYTE Index2 VAR BYTE Temp VAR WORD Stage1TOn VAR StagesX[0] 'EEprom location from 0 to 63. Stage1TOff VAR StagesX[1] Stage1ROn VAR StagesX[2] Stage1ROff VAR StagesX[3] Stage2TOn VAR StagesX[4] Stage2TOff VAR StagesX[5] Stage2ROn VAR StagesX[6] Stage2ROff VAR StagesX[7] Stage3TOn VAR StagesX[8] Stage3TOff VAR StagesX[9] Stage3ROn VAR StagesX[10] Stage3ROff VAR StagesX[11] Stage4TOn VAR StagesX[12] Stage4TOff VAR StagesX[13] Stage4ROn VAR StagesX[14] Stage4ROff VAR StagesX[15] Stage5TOn VAR StagesX[16] Stage5TOff VAR StagesX[17] Stage5ROn VAR StagesX[18] Stage5ROff VAR StagesX[19] Stage6TOn VAR StagesX[20] Stage6TOff VAR StagesX[21] Stage6ROn VAR StagesX[22] Stage6ROff VAR StagesX[23] Stage7TOn VAR StagesX[24] Stage7TOff VAR StagesX[25] Stage7ROn VAR StagesX[26] Stage7ROff VAR StagesX[27] Stage8TOn VAR StagesX[28] Stage8TOff VAR StagesX[29] Stage8ROn VAR StagesX[30] Stage8ROff VAR StagesX[31] Stage1Trig VAR StagesY[0] 'EEprom location from 64 to 79. Stage2Trig VAR StagesY[1] Stage3Trig VAR StagesY[2] Stage4Trig VAR StagesY[3] Gosub Read_Data Then display data on LCD and data is fine. Gosub Write_Data Data on display shows 26000 for all variables, which is Stage8ROffS data word 26000 Read_Data: Index2 = 0 FOR Index = 0 TO 62 STEP 2 READ Index,Temp.LowByte ' Word sized data. Index is the eeprom addr. READ (Index+1),Temp.HighByte StagesX[Index2] = Temp 'Index2 is array adr. IF Index2 < 4 THEN READ (Index2+64),StagesY[Index2] ' Byte sized data. Index2 = Index2 + 1 ' Max. 31. NEXT Index return Write_Data: Index2 = 0 FOR Index = 0 TO 62 STEP 2 Write Index,Temp.LowByte ' Word sized data. Index is the eeprom addr. Write (Index+1),Temp.HighByte StagesX[Index2] = Temp 'Index2 is array adr. IF Index2 < 4 THEN Write (Index2+64),StagesY[Index2] ' Byte sized data. Index2 = Index2 + 1 ' Max. 31. NEXT Index return




Bookmarks