Oto przykłądowy kod z tablicami integer w ram i eeprom. W ram nie ma problemu liczby integer zapisują i odczytują sie poprawnie. Niestety taka sama tablica w eeprom jóż nie działa poprawnie. Przy próbie odczytu dostaje wartość -1. Gdy używam w eeprom tablic bajtowych jest ok.
Jak rozwiązać ten problem.
$regfile = "8535def.dat"
$crystal = 6000000
Config Portb = Output
Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
'-----------------------------------DEKLARACJA ZMIENNYCH------------------------------------------'
Dim Ee(4) As Eram Integer 'Tablica w eeprom
Dim Ram(4) As Integer
Dim Licz As Integer 'Tablica w RAM
Dim Zm As Integer
Dim Dodaj As Integer
'---------------------------------PROGRAM GŁÓWNY---------------------------------------------------
'--------------------------------------------------------------------------------------------------
'***************************************************************************************************
'*************************************************
' Tu zapisanie liczbami integer tablicy w RAM
Licz = 1
Cls
Do
Dodaj = Licz + 1000
Ram(licz) = Dodaj
locate 1,1
Lcd Licz
Incr Licz
Wait 1
Loop Until Licz > 4
Licz = 1
Do
Zm = Ram(licz)
Locate 1 , 10
Lcd Zm
Incr Licz
Wait 1
Loop Until Licz > 4
' Tu zapisanie liczbami integer tablicy w EEPROM
Licz = 1
Cls
Do
Dodaj = Licz + 1000
Writeeeprom Ee(licz) , Dodaj
locate 1,1
Lcd Licz
Incr Licz
Wait 1
Loop Until Licz > 4
Licz = 1
Do
Readeeprom Zm , Licz
Locate 1 , 10
Lcd Zm
Incr Licz
Wait 1
Loop Until Licz > 4
'--------------------------------------------------------
Do
Loop 'end program
Jak rozwiązać ten problem.
$regfile = "8535def.dat"
$crystal = 6000000
Config Portb = Output
Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
'-----------------------------------DEKLARACJA ZMIENNYCH------------------------------------------'
Dim Ee(4) As Eram Integer 'Tablica w eeprom
Dim Ram(4) As Integer
Dim Licz As Integer 'Tablica w RAM
Dim Zm As Integer
Dim Dodaj As Integer
'---------------------------------PROGRAM GŁÓWNY---------------------------------------------------
'--------------------------------------------------------------------------------------------------
'***************************************************************************************************
'*************************************************
' Tu zapisanie liczbami integer tablicy w RAM
Licz = 1
Cls
Do
Dodaj = Licz + 1000
Ram(licz) = Dodaj
locate 1,1
Lcd Licz
Incr Licz
Wait 1
Loop Until Licz > 4
Licz = 1
Do
Zm = Ram(licz)
Locate 1 , 10
Lcd Zm
Incr Licz
Wait 1
Loop Until Licz > 4
' Tu zapisanie liczbami integer tablicy w EEPROM
Licz = 1
Cls
Do
Dodaj = Licz + 1000
Writeeeprom Ee(licz) , Dodaj
locate 1,1
Lcd Licz
Incr Licz
Wait 1
Loop Until Licz > 4
Licz = 1
Do
Readeeprom Zm , Licz
Locate 1 , 10
Lcd Zm
Incr Licz
Wait 1
Loop Until Licz > 4
'--------------------------------------------------------
Do
Loop 'end program