Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Tablica integer w EEPROM

24 Maj 2004 01:20 1153 3
  • Poziom 15  
    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
  • Spec od samochodów
    Może zbyt szybko chcesz odczytać liczbe z eeprom. Wydłuż czas od zapisu do odczytu. Zapisanie w eeprom najlepiej to 10mS.
  • Poziom 21  
    Dim Ee(4) As Eram Integer At 1<<< tak zadeklaruj


    i zastąp tym kodem twój kod>>>>
    ' Tu zapisanie liczbami integer tablicy w EEPROM
    Licz = 1
    Cls
    Do
    Dodaj = Licz + 1000
    Ee(licz) = Dodaj
    Locate 1 , 1
    Lcd Licz
    Incr Licz
    Wait 1
    Loop Until Licz => 4
    Licz = 1
    Do
    Zm = Ee(licz)
    Locate 1 , 10
    Lcd Zm
    Incr Licz
    Wait 1

    Loop Until Licz => 4
    '--------------------------------------------------------


    może powiecie , że to dziwne , ale ja nie używam funkcji readeprom ani writeeprom!!!
    stosuję znak "=" i to wszystko............to działa...
  • Poziom 21  
    diag napisał:
    Może zbyt szybko chcesz odczytać liczbe z eeprom. Wydłuż czas od zapisu do odczytu. Zapisanie w eeprom najlepiej to 10mS.


    Gdybyś przeanalizował kod programu to zobaczyłbyś , że program czeka ponad 1 sekundę po zapisie do eepromu.
    Pozdrawiam