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

At89c2051 ram/rom. Deklaracja zmiennej w pamięci 2051.

chumik 03 Lis 2006 00:32 1762 11
REKLAMA
  • #1 3182010
    chumik
    Poziom 14  
    Posty: 113
    Pomógł: 3
    Ocena: 14
    Witam.
    Proszę o pomoc.
    Nie mogę się doczytaćw pomocy bascom i na forum?!
    Chodzi mi o to że:
    jak zadeklalować zmienną w pamięci 2051 w taki sposób że po odpięciu
    zasilania ta zmienna np:X jest zapisana niezależnie od programu.
    np:
    dim x as byte
    x=x+10
    end

    a po resecie zmienna x będzie miała już x+10 czyli 10
    a po kolejnym już 20.
    Chodzi mi o wpis do pamięci a wiem że to możliwe 'IRAM'
    Pozdrawiam.
  • REKLAMA
  • #2 3182656
    Elektrooonik
    Poziom 29  
    Posty: 1212
    Pomógł: 127
    Ocena: 83
    w 2051 nie ma takiej mozliwosci, mozesz albo zadeklarowac stałą we flashu i wtedy po resecie wartosc bedzie taka sama (ale tez nie mozesz jej w programie zmieniac) albo zapisac ja do pamieci ram i wykonywac na niej działania ale wtedy po resecie zmienna sie wyzeruje

    jesli chcesz by wartosc zmiennej po wykonywaniu na niej działań byla zapamietywana po resecie i odcieciu zasilania musisz wykorzystac pamiec eeprom zewnetrzna lub inny procesor z taką pamięcią (obecnie wszystkie AVR)

    Pozdrawiam
    Paweł
  • REKLAMA
  • #3 3192276
    chumik
    Poziom 14  
    Posty: 113
    Pomógł: 3
    Ocena: 14
    Ok.
    Mam już pamięćprawidłowo podpiętą
    scl pod p3.4
    sda pod p3.5
    Może ktoś by mi napisał przykładowy
    program na zmienna x aby wczytać i zczytać
    bo żadnym sposobem mi nie wychodzi?
    pamięć to at24c128.
    Za pomoc dziękuję.
  • #5 3193049
    hefid
    Spoczywaj w Pokoju
    Posty: 15878
    Pomógł: 546
    Ocena: 6157
    Post był raportowany.
    Przeniosłem z: Początkujący, Laborki, Teoria, Referaty
  • REKLAMA
  • #6 3214630
    chumik
    Poziom 14  
    Posty: 113
    Pomógł: 3
    Ocena: 14
    Nie wiem czy w dobrym poście piszę?
    Kolega powiedział że nie ma możliwości w 2051 ale
    jak wyczytałem w opisie tego procesora to po wyłączeniu
    zasilania bądź resecie jest możliwość zapisania zmiennych na stosie lub
    w pamięci ROM/Flash? nie mogłem się doczytać?
    Proszę o pomoc.
    Mam szczeże mówiąc niemiecki obrotomierz na wyświetlaczu LED i
    gdy odłączę zasilanie bądź użyję reset to PAMIĘTA ostatnie wskazanie!
    Więc musi gdzieś to zapisywać w sobie - at89c2051 - 24pi
    Pozdrawiam
  • REKLAMA
  • #8 3216308
    Elektrooonik
    Poziom 29  
    Posty: 1212
    Pomógł: 127
    Ocena: 83
    chumik, sprawdź czy po resecie ram w 2051 jest czyszczony bo jednak nie jestem pewny, napewno po wyłaczeniu zasilania jego zawartość przepada a czy po resecie to warto sprawdzić

    zapisz jakaś zmienną w ramie jakas wartoscia, zresetuj i odczytaj ta wartość
  • #9 3222093
    chumik
    Poziom 14  
    Posty: 113
    Pomógł: 3
    Ocena: 14
    Umieszczam odnośnik do opisu.
    W moim obrotomierzu jakimś cudem zapamiętuje?
    Może chodzi o ingeręcję w programie (w opisie pisze aby nie ingerować)
    Chyba przejdę na AVR
    tylko nie mam programatora
    a korzystam z programowania w bascom.
    Może zamiast "kombinować" pomożecie w wyborze programatora?
    Jak równierz procesora (chodzi o cenę i możliwości)
    2051 - kosztuje 3,50zł

    https://www.elektroda.pl/rtvforum/topic268754.html#1333530

    Dodano po 2 [minuty]:

    Jeśli chodzi o pamięć procesora z obrotomierza
    to boję się zczytywać bo pewnie jest zabezpieczony i z pewnością
    przepadnie.
  • #10 3222313
    Balu
    Poziom 38  
    Posty: 4397
    Pomógł: 323
    Ocena: 48
    Programator, jak się nie chcesz bawić kup ISP z allegro za ~30zł.A jak nie to kup 74hc244 i kilka rezystorów + wtyczkę. Schemat są wszędzie.

    Co do procka weź Mega8 (~5...6zł) w sumie chyba najbardziej popularna mega. 4KB programu, 5xadc, i takie tam.
  • #11 3222899
    tomba
    Poziom 17  
    Posty: 275
    Pomógł: 11
    Ocena: 18
    no no no jak sama nazwa wskazuje ATMEGA 8 ma "4" kilo Bytes na program no no no
    zgadza się tylko cena i takie tam
  • #12 3563353
    chumik
    Poziom 14  
    Posty: 113
    Pomógł: 3
    Ocena: 14
    Dzięki za podpowiedzi!
    Temat zakańczam

Podsumowanie tematu

✨ W dyskusji poruszono problem deklaracji zmiennej w mikrokontrolerze AT89C2051 tak, aby jej wartość była zachowana po odłączeniu zasilania i resecie. Wyjaśniono, że w 2051 nie ma wbudowanej pamięci nieulotnej do zapisu zmiennych, a RAM jest tracony po wyłączeniu zasilania. Można jedynie zadeklarować stałą w pamięci flash, ale jej wartość nie może być zmieniana w trakcie działania programu. Aby zachować zmienną po resecie, konieczne jest użycie zewnętrznej pamięci EEPROM, np. AT24C128, podłączonej do magistrali I2C (SCL do P3.4, SDA do P3.5). Autor prosił o przykładowy program do odczytu i zapisu zmiennej w takiej pamięci. Wskazano również, że mikrokontrolery AVR (np. ATmega8) mają wbudowaną pamięć EEPROM i mogą być lepszym wyborem, choć wymagają programatora ISP. Podano sugestie dotyczące taniego programatora oraz wyboru procesora ze względu na cenę i funkcjonalność. Wątpliwości dotyczące możliwości zapisu zmiennych w pamięci wewnętrznej 2051 zostały rozwiane – brak takiej funkcji, a pamięć RAM jest czyszczona po odłączeniu zasilania.
Wygenerowane przez model językowy.
REKLAMA