Witam,
W moim programie umieściłem dane typu LONG w pamięci EEPROM
Tak zapisane dane odczytuje za pomocą zmiennej tablicowej Etab_czas1 i Etab_czas2.
gdzie: temp2 - zmienna pomocnicza, n - numer od 1 do 40.
I tu pojawia się problem, otóż w symulacji Bascomem jest wszystko ok (wnioskuje z tego że teoretycznie nie popełniłem błedu), ale jeśli wgram program do procka to ten odczyt jest nie poprawny. Dla każdego odczytu wychodzi -1.
Dodam jeszcze że jak w programie dodam zapis do EEPROM to późniejszy odczyt jest poprawny, (na zaprogramowanym procku) tzn.
Co może produkować taki błąd? Jest inny sposób zapisu do pamięci zmiennych LONG w sekcji $eeprom?
W moim programie umieściłem dane typu LONG w pamięci EEPROM
$eeprom 'dane do zapisania w EEPROMie
Data 0 ' nie uzywany bajt
Tab_czas1:
Data 0& , 1& , 2& , 60& , 61& , 75& , 1275& , 1455& , 1456& , 1457& , 2000& , 2001& , 2002& , 2060& , 2061& , 2075&
Data 3275& , 3455& , 3456& , 3457& , 4000& , 4001& , 4002& , 4060& , 4061& , 4075& , 5275& , 5455& , 5456& , 5457&
Data 6000& , 6001& , 6002& , 6060& , 6061& , 6075& , 7275& , 7455& , 7456& , 7457&
Tab_czas2:
Data 0& , 1& , 2& , 60& , 61& , 75& , 1275& , 1455& , 1456& , 1457& , 2000& , 2001& , 2002& , 2060& , 2061& , 2075&
Data 3275& , 3455& , 3456& , 3457& , 4000& , 4001& , 4002& , 4060& , 4061& , 4075& , 5275& , 5455& , 5456& , 5457&
Data 6000& , 6001& , 6002& , 6060& , 6061& , 6075& , 7275& , 7455& , 7456& , 7457&
$data
Dim Etab_czas1(40) As Eram Long At 1 'tablica zawiera wszystkie kolejne czasy operacji na zaworach
Dim Etab_czas2(40) As Eram Long At 161
....
Tak zapisane dane odczytuje za pomocą zmiennej tablicowej Etab_czas1 i Etab_czas2.
If Menu_string = "ZWYKLY" Then
Temp2 = Etab_czas1(n)
Else
Temp2 = Etab_czas2(n)
End If
gdzie: temp2 - zmienna pomocnicza, n - numer od 1 do 40.
I tu pojawia się problem, otóż w symulacji Bascomem jest wszystko ok (wnioskuje z tego że teoretycznie nie popełniłem błedu), ale jeśli wgram program do procka to ten odczyt jest nie poprawny. Dla każdego odczytu wychodzi -1.
Dodam jeszcze że jak w programie dodam zapis do EEPROM to późniejszy odczyt jest poprawny, (na zaprogramowanym procku) tzn.
Etab_czas1(1) = 60
liczba_sekund = Etab_czas1(1)
Co może produkować taki błąd? Jest inny sposób zapisu do pamięci zmiennych LONG w sekcji $eeprom?