logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zapis dużych liczb do pamieci [bascom] [atmega8]

misiekdg 12 Maj 2009 21:23 3733 6
REKLAMA
  • #1 6522598
    misiekdg
    Poziom 13  
    Mam problem, dla niektórych to może łatwizna ale potrzebuje zapisac liczby 6-7 cyfrowe do pamieci mikroprocesora. Zmienna jest typu long a po odczycie chciałbym żeby nadal nią była. Jest jakas funkcja która to robi? czy trzeba sie bawić w dzielenie przez 256 i sprawdzanie reszty?
  • REKLAMA
  • #2 6523102
    jacek13
    Poziom 15  
    Rozumię, że chodzi o zapis do pamięci EEPROM a potem odczyt z pamięci.
    Aby dokonać zapisu do EEPROM-u należy:
    Dim x as long 'definicja zmiennej "x" typu Long
    x = .... 'wpisać wielkość tej zmiennej
    writeeeprom x , 1 'zapisanie zmiennej "x" do komórki "1" EEPROM-u

    Aby odczytać z EEPROM-u:
    readeeprom x , 1 'odczyt zmiennej "x" z komórki "1" EEPROM-u

    Uwaga: ponieważ przy uruchomieniu programu po raz pierwszy, gdy jeszcze nie dokonano zapisu do EEPROM-u będą problemy z odczytem niezapisanej wielkości, to proponuję przed zasadniczą częścią programu (przed główną pętlą "Do - Loop") wpisać:
    if x > 0 then
    x = x
    else
    x = ... 'wpisać dowolną wielkość
    end if
  • REKLAMA
  • #3 6523199
    wader_669
    Poziom 28  
    Juz byl taki temat.
    Autorowi tego tematu pewnie ciezko znalezc, bo sam chyba nie wie dokladnie co chce.
  • REKLAMA
  • #4 6523769
    misiekdg
    Poziom 13  
    Zle mnie zrozumieliście Panowie. Nie chodzi mi o sam zapis i odczyt bo to prosta sprawa ale o to, że pamieć składa się z komórek które mają rozmiar 1 Bajta, tak wiec do kazdej komórki można zapisać maksymalną liczbe 256. A ja chce zapisac liczbe typu 17352965 i kiedy to chce zrobić bascom wywala błąd "Value doesn't into BYTE" co jest całkowicie zrozumiałe czemu. Można tą liczbe dzielić przez 256 i kazdy kolejny wynik zapisywac do osobnej komórki, pozniej zaś mnożyć i sumowac zeby odczytać tą liczbe z pamieci, ale może jest jakiś prostrzy sposób?? I o ten sposób właśnie pytam??
  • REKLAMA
  • #5 6525415
    jacek13
    Poziom 15  
    Do programowania używam BASCOM AVR i tak jak podałem powyżej zapisałem do EEPROM-u liczbę 320000000 i potem odczytałem bez problemów.
    Definiując zapis "Long" następuje automatycznie zajęcie odpowiedniej ilości komórek - sprawdzałem są zajęte cztery komórki.
  • #6 6526601
    Konto nie istnieje
    Poziom 1  
  • #7 6555298
    misiekdg
    Poziom 13  
    Zadziałało mi wszystko tak jak należy, problemem było przekazywanie zmiennej do procedury w której były one w pewnien sposób analizowane i zapisywane.
REKLAMA