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

AT90S8535 EEPROM - zapis tylko zmiennych typu byte, brak innych danych

karol1010 10 Sty 2006 20:48 1260 6
REKLAMA
  • #1 2167549
    karol1010
    Poziom 21  
    Posty: 570
    Ocena: 16
    MAM TAKI PROBLEM :
    DLACZEGO W PAMIECI EEPROM TEGO PROCESORA MOGE ZAPISAC TYLKO ZMIENNA TYPU BYTE INNYCH NIE ZAPAMIETUJE.:cry:
  • REKLAMA
  • #2 2167592
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Rozumiem, że piszesz w C.Nie wiem czy to pomoże ale spróbuj zrobić konwersje typów:
    epprom_write_byte(adres, (unsigned char) zmienna);
    Nie pamiętam czy adres miał być pierwszy czy drugi ale nie w tym rzecz
  • REKLAMA
  • #3 2167605
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    To wszystko kewstia programu a nie samego układu.
    Moza przecież przed zapisem pobrac częsc całkowitą z liczby podzielonej przez 256 i zapisac do drugiej komórki.
    A w czesie odczytu odczytac jedna i dodac do niej zawartośc drugiej komórki*256.
    przykład:
    1750 = 214 + (6*256);
    W jdenej 214 a w drugiej 6
    A doczytujesz to tak:
    6*256+214=1750.
    Kompilator na etapie tworzenia programu decyduje w jaki sposób mają byc zapisywane dane w pamięci EEProm.
  • REKLAMA
  • #4 2167610
    karol1010
    Poziom 21  
    Posty: 570
    Ocena: 16
    SORKI SPROSTOWANIE PONIEWAZ MI SIE SPIESZYLO. PISZE W BASCOMIE I NIEWIEM CO JEST GRANE A JAK WEZME ATMEGE TO DZIALA TAK WOLNO JAK SYMULATOR W KOMPIE:)

    Dodano po 5 [minuty]:

    NIE ZAPISUJE ZMIENNYCH PRZY KOMPILOWANIU TYLKO JUZ PRZY DZIALANIU PO PRZEZ WRITEEEPROM.

    NP

    ZAPIS:

    WRITEEEPROM X , 1 'X JEST TYPU WORD
    WAITMS 100
    RETURN
  • #5 2168478
    Jarema
    Użytkownik obserwowany
    Posty: 1179
    Pomógł: 86
    Ocena: 32
    Witam,
    To, że piszesz w bascomie to widać - WYŁĄCZ CAPS LOCK.
  • REKLAMA
  • #6 2168567
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    ja zawsz robie tak:
    
    dim A as word
    dim a_e as eram word
    
    a=a_e '- czytam z komurki
    a_e=a '- zapisuje do komurki
    


    co do WRITEEEPROM to nie wiem czy można zapisywać z pomocą tej funkcji zmienne większe jak byte.
  • #7 2896854
    karol1010
    Poziom 21  
    Posty: 570
    Ocena: 16
    problem zostal rozwiazany wadliwe procesory kupilem to poprostu szok!!

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczył zapisu zmiennych innych niż typu byte w pamięci EEPROM mikrokontrolera AT90S8535 podczas programowania w Bascom. Użytkownik zauważył, że funkcja WRITEEEPROM poprawnie zapisuje tylko zmienne typu byte, natomiast zmienne typu word nie są zapamiętywane. W odpowiedziach zasugerowano konwersję typów na unsigned char przed zapisem oraz podział wartości word na dwie komórki EEPROM, zapisując część niską i wysoką osobno, a następnie ich scalanie przy odczycie. Podkreślono, że sposób zapisu danych zależy od implementacji w programie i kompilatorze. Ostatecznie problem został rozwiązany poprzez wymianę wadliwych procesorów, które były przyczyną nieprawidłowego zapisu danych w EEPROM.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA