Ciesz się , że to wogóle działa :D Przypatrz sie 1-szej linii i napisz , czy po jej wykonaniu linia SDA będzie rzeczywiście w stanie niskim :?: void EEPROMStopTransmition() { EEPROM_PORT |= ~EEPROM_SDA; //***************** EEPROM_PORT |= EEPROM_SCK; EEPROM_PORT |= EEPROM_SDA; } Piotrek
O jakim rzutowaniu Wy tu mówicie :?: Potrzebujesz zmienną w EEPROM, to ją sobie tam zadeklaruj, a nie wymyślasz cuda :-P
Ponieważ wewnętrzny oscylator w mikrokontrolerze w procesie produkcji ma najczęściej odchyłkę od tych 8MHz, dlatego Atmel wprowadził możliwość kalibracji tej częstotliwości dzięki wpisywaniu do rejestru OSCCAL odpowiedniej wartości. W procesie produkcji jest też kalibrowana ta wartość i zapisywana w pamięci dostępnej tylko dla programatora. Dlatego...
Jak spowodować aby PIERWSZY odczyt np. komórki "0" nie wyświetlał 255 ? Zapisać wymaganą wartość wartość. - na etapie programowania lub odpowiednią funkcją sprawdzającą czy eeprom jest czysty. [syntax=arduino] if(EEPROM.read(0)==255) //czy eeprom jest czysty ? { EEPROM.write(0,0); // ... co tam trzeba EEPROM.commit(); delay(200); } [/syntax]
Witam. Pozwolę sobie odświeżyć temat, ponieważ potrzebuję właśnie taki układ. Mam jednak pytanie: Czy konieczne jest wykorzystanie obu wejść analogowych? Nie wystarczy pomiar napięcia wejściowego (+5V) i jeśli spadnie ono poniżej jakiegoś progu to dać instrukcję do zapisania zmiennej do pamięci eeprom? (potrzebuję zapisać wartość jednej zmiennej do...
Zapis i odczyt wartości do pamięci EEprom
Kompilator to gcc, Eclipse to tylko edytor. sizeof() musi mieć dostępną pełną definicję typu, bez tego nie ma szans zadziałać. Innymi słowy definicja ta musi być w jakimś pliku nagłówkowym, który będzie dołączony zarówno tam gdzie ustawiasz wartość, jak i tam gdzie zapisujesz ją do EEPROMu. 4\/3!!
Jeśli procesor ma wbudowane 512 bajtów EEPROM, to ostatni adres to 0x1FF/511. Przyjmijmy że zapisuje liczbę 123 pod adresem 100, jeżeli odczytam dane z adresu 101 to wynikiem będzie 2? Wynikiem będzie to, co wcześniej zapisano pod adresem 101. Jaką max wartość mogę zapisać pod 1 adresem eeprom? Z punktu widzenia 8-bitowej magistrali danych pod jednym...
No właśnie jeśli w programie przed pętlą główną nadam wartości zmiennym w eeprom np. zm_eeprom = "jakis tekst" to po resecie program wystartuje od nowa i zapisze z powrotem wartości początkowe w programie do eeprom ? posłuchaj - jeśli potrzebujesz zapisać domyślnie zm_eeprom = "jakis tekst" to robisz to tylko wtedy jeśli wszystkie komórki tej zmiennej...
Witam Kolegów, Czy ktoś z Szanownych Kolegów zajmował się rozwiązaniem sprzętowo/ programistycznym pozwalającym zapisać kilka bajtów pamięci EEPROM w czasie wyłączania zasilania - chodzi o zapisanie bieżących wartości kilku zmiennych (mega8)... ro biw
Podłącz INT1 przez dzielnik rezystancyjny do napięcia zasilania, tak aby INT0 generował przerwanie gdy napięcie 12V spadnie do wartości około 10V. Wówczas wystarczy czasu aby zapisać dane do eeprom. Zamiast samego dzienika możesz wykorzystać dowonlny komparator - wtedy całość będzie działała poprawniej.
Po wgraniu do czystej Atmegi kodu chcę, żeby wartość wyniosła np.100. Po ustawieniu innej wartości można ją zapisać do EEPROM. Po resecie i zaniku zasilania wartość ta ma pozostać taka jaką ustawiłem (nie ta co wpisałem do czystej Atmegi) Chyba dobrze wytłumaczyłem ?
Jak to obliczyłeś? Pewnie 1024/4 bajty = 256, ale tutaj tak to nie działa. Strona 1024 bajty to 1024 bajty, inaczej 512 półsłów. Zapis do stron pamięci w STM32F0 wymaga zapisywania półsłów, do jednej strony oczywiście można zapisać 512 półsłów. Tzw. "emulacja EEPROMu" zapisuje wartość zmiennej (2 bajty) + "identyfikator zmiennej" (2 bajty), a więc...
Przed zaprogramowaniem uP ustaw bit EESAVE w "Configuration and Security bits". To spowoduje, że po zaprogramowaniu FLASH, EEPROM nie będzie kasowany. EEPROM możesz zapisać dowolnymi wartościami za pomocą "Write Data Memory (EEPROM)".
Witam, Chciałem zapisać kilka wartości, które przechowuje w zemiennych typu uint16_t, by potem je odczytać po ponownym włączeniu zasilania. Poczytałem trochę o EEPROM w Xmega i dotarłem do żródła sterownika eepromu. Przykład jest dla mnie zagmatwany, więc prosiłbym o kilka słów wyjaśnień, lub wskazanie miejsca, gdzie jest to dobrze opisane. Nie rozumiem...
Fajne że napięcie na NTC-ku spadło a co się stało z rezystancją samego czujnika, bo też powinna spaść. Jest na płycie triak ? Podający zasilanie na cewkę przekaźnika, może on jest uszkodzony i ciągle podaje zasilanie jego cewki o ile grzeje od samego startu ale to by załączało grzałkę nawet wtedy gdy grzanie nie jest części programu. Jest jeszcze port...
Witam. Jak w asemblerze zapisać dwie liczby o wartościach od 0 do 255 do pamięci EEPROM mikrokontrolera ATtiny 2313 lub 4313.
Skoro obliczenia w asemblerze sprawiają Ci kłopot , to mając 8KB pamięci programu i 2KB EEProm-u , wygospodaruj 720 bajtów na tablicę , zapisz w niej gotowe wartości dla każdego kąta i ... to tyle ;) Piotrek
... dlatego chciałem to zorganizować programowo na kontrolerze, żeby przy pierwszym odpaleniu programu na procesorze do EEPROM-u zapisało domyślne wartości. A później przy kolejnych uruchomieniach procesora nie było już tego zapisu przy uruchomieniu tylko odczyt. Ale coś czuję w kościach, że się tak nie da... Jak to się nie da? .... ależ da się i powiem...
Zapis do EEPROM jest realizowany różnie. Są EEPROMy w których kasowanie odbywa się stronami, natomiast zapis możliwy jest do pojedynczych komórek, są też EEPROMy posiadające wewnętrzny bufor SRAM, do którego odbywa się najpierw zapis, a potem z niego na stronę pamięci. W takim przypadku jeśli strona ma np. 128 bajtów, to inicjacja zapisu powoduje zapisanie...
Tak, wsad jest zresetowany, pojemność dobrze ustawiona i cykle wyzerowane. Możesz to sprawdzić właśnie za pomocą sbworkshop. W tej zakładce, gdzie odczytywałeś pamieć, teraz otwórz ten zapisany plik i na dole w ramkach pokażą Ci się wartości, wtedy podepnij eeprom wylutowany i zrób write. Następnie żeby sprawdzić, czy się dobrze zapisało, znowu zrób...
no ale teraz problem u Ciebie jest taki że Twoja pamięć już jest prawdopodobnie uszkodzona. Jej żywotność gwarantowana to 100 000 cykli zapisu. Szacuje że Twój program główny to jakieś 1000 cykli (zawyżam wartość) uC. Jeżeli taktujesz uC z 8MHz, to zabijesz pamięć po 12,5s. Takie rzeczy jak potrzebujesz robi się na pamięci RAM z podtrzymaniem bateryjnym...
Po utracie i ponownym załączeniu uC odczytuje z pamięci EEPROM wartość poprzednio zapisaną i od niej zaczyna dalej liczyć. Z tego co wiem ESP32-C3 nie ma EEPROM. Jest jego emulacja we FLASH. Ale odczyt/zapis tych samych komórek to raczej kiepski pomysł. Część zegarów RTC ma dodatkowy RAM (np. DS3232 lub tańszy DS1307) podtrzymywany przez baterię. Tam...
Wracając do uC i zaniku napięcia bądź resetu, zawsze można aktualną wartość zapisać w nieulotnej pamięci EEPROM, znajdującej się na "pokładzie". Po restarcie można wczytać zapisaną wartość i nie będzie problemu. Wątpię w to, aby dobrze napisany program, realizujący dość prostą funkcjonalność się wieszał. Zawsze można dodać guzik reset :-).
Pokazuje tylko błąd (zapis pewnie też by powodował, dlatego go tutaj nie dodałem) Próbujesz przypisać wartość typu uint8_t (o romiarze 1 bajtu) do wskaźnika const char* (o rozmiarze 4 bajtów). Czy kolegi intencją jest odczytanie łańcucha tekstowego z EEPROM? Jeżeli tak, to przykład odnajdzie kolega pod poniższym linkiem: https://mindeon.com/posts/coding-journal...
Wcześniejsze kwestie wyjaśnił już kol. (at)michalko12 . Mowiąc o tym, że funkcja z eeprom.h dokonuje kasowania przed zapisem powoływałem się na Twoją książkę (str.235 wytłuszczonym drukiem) oraz na https://www.nongnu.org/avr-libc/user-man... gdzie jest napisane: "All write functions force erase_and_write programming mode." Nowsze...
chodzi mi o programowanie układu. W bascomie były komendy które ustawiały wartości w pamięci eeprom w trakcie programowania układu. Podobno na PlatformIo jest plik eep.
Witam, Chciałem się dowiedzieć jak można zrealizować zapis takiej liczby do pamięci? Próbowałem z poleceniami eeprom_read_word(); oraz eeprom_write_word(); ale jakoś nie bardzo moge zapisać i zczytać później daną wartość. Pozdrawiam.
Rozumiem, w takim razie, że zawsze warto używać _update, zamiast _write? To zależy co chcesz zrobić. Jak zainicjować EEPROM domyślnymi wartościami to obowiązkowo write. Jak zapisać blok danych uprzednio odczytanych z eeprom to zdecydowanie update.
Proszę. Jest to przykład zapisu i odczytu zarówno zwykłych bajtów jak też łańcuchów tekstowych inaczej mówiąc napisów w Eeprom. Program i funkcje działają z małymi pamięciami których adresacja mieści się w jednym bajcie. Do tego przykładu użyłem 24C04 Jeśli ktoś chce to może po prostu wpisać sobie jakieś dane do buff(1), Buff(2) itd i tak zapisać. Potem...
Dziękuję i sorki, ale czy można troszkę jaśniej z tymi przyciskami ? Czy mogę wartości z tablicy zapisać w eeprom ? Czy mogę całą tablicę, czy muszę po kolei każdą komórkę ?
Problem jak w temacie, potrzebuję w eeprom zapisać kilka wartości, niestety nie mogę użyć większej liczby niż 255. Prubuję to zrobić przez: [syntax=c] eeprom_write_word(adres, zmienna_do_wpisania); zmienna=eeprom_read_word (adres); [/syntax] Nie działa, a skoro słowo to powinienem mieć 16 bitów na liczbę, niestety jest tylko 8 i nie umiem tego przeskoczyć....
Szesnastkowo FF, lub - jeśli wolisz 0xFF Pamięć EEPROM jeśli jest pusta zawiera właśnie taką wartość. FFh to takie przyzwyczajenie - przepraszam, jeśli wprowadziłem w błąd...
A dlaczego deklarować by zmienną w obszarze pamięci eeporm i odwoływać się do niej. Dodatkowo nie wiem jaki ona ma adres tylko posługuje się adresem tej zmiennej która jest dla mnie nie znana. Czy deklarując zmienną w pamięci eeprom jej adres jest przypadkowy czy zaczyna się od jedynki. Wcześniej znalazłem już rozwiązanie które działa i właśnie polega...
Udało się powyższymi metodami oszczędzić nieco pamięci, ale chciałoby się więcej (;. zastanawiam się czy poniższa konwersja do uint8_t ma prawo zadziałać? nP1.getValue(uint8_t(&storeData[1].pos))... nC1.getValue(uint8_t(&storeData[1].ch)); kompilator przepuszcza coś takiego z uwagą: warning: cast from 'uint8_t* {aka unsigned char*}' to 'uint8_t {aka unsigned...
Nie zaznaczyłem bitu. Gdzie to się robi? Do programowania używam USBasp-a i AVRDude odpalanego z Atmel Studio. Z zapisem do EEPROM, nie mam problemu, chodzi mi o wartość inicjującą zmienną. Dopóki nie zapiszę czegoś w EEPROM to mam tam 65535 zamiast 270, a chciałbym, żeby 270 było tam od razu po zaprogramowaniu mikrokontrolera (o ile to możliwe). To...
Rozumiem to. Ale co w sytuacji, kiedy mamy do zapisania FF? Taka jest wartość mojej zmiennej, i choćby się waliło i paliło muszę ją zapisać do EEPROM. Jak Twój algorytm sobie z tym poradzi? Albo, w przypadku kiedy zapisuję słowa, mam wartości zmiennych 511 (01FF), 65281 (FF01) oraz 65535 (FFFF) na zmianę. Jak ogarnąć to po Twojemu? Jeśli mamy 1 bajt...
Napotykam teraz na inny problem. Napisałem program, który za każdym razem inkrementuje zmienną, jeśli przekracza 41 to ją zeruje. Wynik wypisuje na LCD. Działa, jeśli między wyłączeniem i ponownym włączeniem urządzenia nie mija więcej niż ok 2 sek. Jeśli natomiast wyłączę na 5, 10s, to zmienna (nie ważne jaką zapisała wartość do EEPROM) ustawia sie...
witam Jak wyczytałem to eeprom i2C w prosty sposób się programuje ale nigdy nie miałem z tym do czynienia i nie wiem jak to zrobić w związku z tym mam parę pytani -czy mikroprocesor 82C55A załaduje eeprom ST24C16 bez żadnei pomocy programowej - jak zapisać program na eeprom z PC czy zależy wartość bit na wejściu nr 7 o nazwie MODE/WC Czy przy starcie...
w ogóle się nie zapisze. Musiałby zrobić układ wykrywający spadek napięcia i przy jakimś niskim napięciu (ale takim żeby procesor jeszcze żył) Pomysł zaiste jest bez sensu, ale jak już brniecie w takie podpowiedzi to nie musiałby robić żadnego układu wykrywającego spadek napięcia i tym podobne cuda panie gaskoin Wystarczy po włączeniu zasilania zmienić...
Aby zachować wprowadzone modyfikacje na stałe, należy ręcznie skopiować je z pamięci RAM do pamięci EEPROM, ustawiając parametr P0971 na wartość 1. https://obrazki.elektroda.pl/1869464000_...
Witam, Piszę program na atmege j/w i mam problem z odczytem wartości z eepromu. Napisalem prosty testowy programik: :10000000FFFFFFFFFFFFFFFFFFFFAAFFFFF... :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFF... :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFF... :10003000FFFFFFFFFFFFFFFFFFFFFFFFFFF... :10004000FFFFFFFFFFFFFFFFFFFFFFFFFFF...
Czyli dopiero kiedy wpiszę 0 do tego fuse bitu to będę mógł zapomnieć o każdorazowym programowaniu eepromu po wyczyszczeniu ATmegi, tak? Bo domyślnie jest tam wpisane 1 i pamięć jest niezabezpieczona przez "chip erase". A czy kiedy będę chciał zmienić zawartość pamięci eeprom, to wtedy wystarczy wpisać do EESAVE ponownie wartość 1, zapisać nową zawartość...
Wstaw po linijce:[syntax=c] Serial.println("writing eeprom pass:"); [/syntax] dodatkowo:[syntax=c] Serial.println(qpass.length());[/syntax] Jaka wartość się pokazuje?
chcę zrobić tablicę z nazwami dni tygodnia do kalendarza. deklaruję dim tablica(7) as string * 12 Po co Ci aż 7 12-bajtowych stringów :?: Wystarczy: Dim Dzientygodnia As String *12 , Nrdnia As Byte ... Dzientygodnia=Lookupstr(Nrdnia,Tabli... '0=Pon, 1=Wtor, ... Lcd Dzientygodnia; ... Tablica: Data "poniedziałek", "wtorek"...
Dzień dobry. Pracuję na sterowniku S7-200 Siemensa, mam już gotowy cały pogram, jednak nie mogę uporać się z jednym zagadnieniem - mianowicie, potrzebuję zapisywać 4 zmienne liczbowe do EEPROM aby po wyłączeniu zasilania te parametry zostały zapamiętane. Przykładowo: chcę zapisać wartość liczbową "50" do MB8: https://obrazki.elektroda.pl/5684698700_...
Bascom sam się nie zajmie resetowaniem Watchdog'a, jak słusznie zauważył Holy . Żeby z niego skorzystać najpierw trzeba go skonfigurować (ustawić stopień podziału - od tego zależy czas potrzebny na przepełnienie jego licznika) poleceniem CONFIG WATCHDOG = czas , później uruchomić: Start Watchdog . Teraz w newralgicznych punktach programu musi zostać...
Witam Mam problem bo nie mogę nakłonić attiny2313 do zapisu a następnie odczytu wartości z eepromu. Próbuję zapisać wartość liczba_LED do eepromu a następnie ją odczytać a wyświetlacz 7-LED zobrazuje to. Co robię nie tak? Z góry dziękuję za pomoc. #define F_CPU 4000000L #include <avr/io.h> #include <util/delay.h> int main(void) {...
Witam. Kupiłem sobie ostatnio pamięć EEPROM Microchip 24AA01 I/P. Próbowałem to obsłużyć z Arduino MEGA i nie wychodziło. Jak zapisałem do adresu 0x01 wartość 0xB7 to przy odczycie zawsze pokazywało 255. Wszystko podłączyłem tak jak trzeba a i tak nie działało. Ktoś zna rozwiązanie?
mam pytanie programuje od 11 dni i natknelem sie na problem zapisania i odczytania wartosci z zawartego w 90S8515 EEPROMU. Chciałem oczytać wartość np z adresu 00 i wpisać go do jakiegoś rejestru. Mam zamiar zapisać kroj czcionki by wyswietlac napisy na LCD od nokii
Tutaj muszę najpierw dopowiedzieć, że spotkałem się z kolegą (at)piotrva (bardzo sympatyczny młody geniusz) i przekazałem jedną z dziwnie zachowujących się ATMeg do testów - dlatego teraz testy wychodzą spod jego pióra. W piątek kupiłem nową ATMegę32 (na Wrocławskiej) i już chciałem napisać, że oczywiście wszystko jest OK (bo zaprogramowałem od razu...
można zapytać układ przez BT wartości zapisanej w EEPROM, którą można zmienić komendą przez BT.
Witam Jeśli dobrze rozumiem zdanie: "na zmienienie wartości string odczytanej z eeprom na zwykły tekst" masz na myśli zamianę liczby (zapisanej w kodzie ASCII ?) na jej odpowiednik znakowy. Program, który wykorzystałeś bazuje na kodach ASCII znaków, (komentarz przed tabelą znaków Fontlookop), dlatego też po mojemu niepotrzebnie stosujesz zapis: Czytaj_str...
Witam Program do miernika jest już prawie skończony, zostało mi tylko dopracować menu i zmienić rezystory w dzielnikach na 1%. Wartość maksymalnej temperatury jest ustawiana przy pierwszym włączeniu i zapisywana do eeprom. Chciałbym sie jeszcze tylko dowiedzieć w jaki sposób zadeklarować w programie żeby przy programowaniu zapisało do pamięci eeprom...
Możesz mi napisać jak to zrobić pod C. To znaczy jak to zlinkować. Czy musze pozmienaić wartości w pliku make.
Witam, Proszę o podpowiedź jak zapisać zmienną typu single, konkretnie wartość np. 1.23458 do komórek pamięci eeprom. Chodzi o zapis w Bascomie. Jeżeli wpiszę dim zmienna as single zmienna= 1.23458 Writeeeprom zmienna , 1 to przy odczycie Readeeprom zmienna , 1 na lcd ukazuje się 1.234580037
Witam, z pewnością ten temat był juz poruszany, jednak prosze o pomoc. Potrzebuję zapisać wartość np. 23458 (zmienna typu WORD) do pamięci EEPROM, a następnie ją odczytać do zmiennej word. Jak to powinienem zrobić Zapisuję i odczytuję dane ale nie typu Word. Mam problem z tym. Proszę o jakiś kod programu. Dziękuję.
Standardowa 24C16 nie ma żadnych linii adresowych. Ma na sztywno A0. Do zapisu i odczytu używa się innych adresów - tj do zapisu adres jest parzysty a do odczytu nieparzysty, o 1 większy - tutaj A1 Funkcja eeprom_rbyte nie zwraca wartości.
Witam wszystkich! Mam następujący problem: Muszę zaprogramować ok 100 procesorów ATtint2313 pracujących na wewnętrznym generatorze 8MHz, z tego co wiem to po resecie tego procesora do rejestru OSCCAL jest ładowana wartość kalibracyjna dla wartości 4MHz, a mi potrzeba wartość dla 8MHz, a na dodatek muszę to zrobić przez avrdude, ponieważ programy dla...
Czy taki czujnik wykrywa w jakim poziomie jest zanurzony? Jaka może być jego dokładność? Oczywiście, że tego nie wykryje. Musisz go skalibrować po wykonaniu, lub chociaż ustawić offset. Tzn. należy zapisać np. w pamięci EEPROM mikrokontrolera wartość występującą dla pełnego zbiornika. Później należy ten tę wartość odejmować od wyniku pomiaru. Błąd...
Witam, Przetestowałem inny obwód zamka szyfrowego. Zadaniem układu jest odbiór sygnałów z odbiornika podczerwieni i porównanie ich z wartościami wcześniej zapisanymi w pamięci EEprom układu PIC12F675. Po otrzymaniu 4-cyfrowego hasła porównuje wyjście aktywacji zamka i wyjścia. Aby ustawić hasło, wystarczy nacisnąć przycisk „Prog”. Powiązane tematy;...
Do programowania można było użyć jednego switcha/przełacznika/zworki. Po włączeniu trzymać go na tyle czasu ile ma działać wentylator i po puszczeniu wartość czasu zapisać w EEPROM. O stabilizatorach i całym zasilaniu nie będę już wspominał. Już o tym pisałem. Tylko jeśli używa czasów rzędu 15-30 minut lub dłużej, to powodzenia z takim programowaniem...
To się podepnę do wątku. Mógłbym prosić o kod, który: -przyciśnięcie przycisku przez 5s spowoduje zapisanie do eeprom-u wartości jednej zmiennej - liczby zmiennoprzecinkowej (kąt z inklinometru) -ponowne przyciśnięcie przez 5s nadpisze poprzednią wartość. To ma być taki rodzaj kalibracji wykonany praktycznie tylko raz, lub sporadycznie. Jak pobrać wartość...
Mógłbym prosić o kod (lub wskazówki) który: Mój poziom to Blinkin LED + -przyciśnięcie przycisku przez 5s spowoduje zapisanie do eeprom-u wartości jednej zmiennej - liczby zmiennoprzecinkowej (kąt z inklinometru) -ponowne przyciśnięcie przez 5s nadpisze poprzednią wartość. To ma być taki rodzaj kalibracji wykonany praktycznie tylko raz, lub sporadycznie....
witam, dobry przykład obsługi eepromu zamieszczony jest w dokumentacji od atmegi i wygląda to tak : void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { while(EECR & (1<<EEWE)); EEAR = uiAddress; EEDR = ucData; EECR |= (1<<EEMWE); EECR |= (1<<EEWE); } unsigned char...
I tu jestem w tzw. kropce. Ja również - trudno zgadnąć co tam napisałeś. Opublikowanie kodu zdecydowanie uprości analizę. Ponadto nie wiem jak poradzić sobie z całkowicie pierwszym uruchomieniem urządzenia, gdy poprzedniego wyniku jeszcze nie ma – układ będzie się buntował, bo zmienna nie ma przypisanej wartości. https://www.elektroda.pl/rtvforum/viewto...
Rozumiem, jeszcze pozostaje kwestia wartości zapisanych do eepromu. użytkownik ustawia wartośc status z zakresu 0-11. za pomocą lookupstr zwracam mu na wyświetlacz "userfriendly" wartość tekstową na podstawie data Led_level_LCD [syntax=basic4gl] Led_level_LCD: Data "OFF" ," 10%" ," 20%" ," 30%" ," 40%" ," 50%" ," 60%" ," 70%" ," 80%" ," 90%" , "100%"...
Hmm , z tym rozpoczęciem programowania poprzez reset to lipna sprawa niestety. Moduły są rozsiane w róznych miejscach i właśnie dlatego założyłem ten temat. Myślałem że już może ktoś to zrobił wcześniej. Ja osobiście wolałbym użyć np. watchdoga do inicjacji wgrywania oprogramowania czyli : wysłać poprzez rs485 polecenie np: firmware_1 i to polecenie...
Aby uzyskać dostęp do odczytu eeprom, trzeba ustawić bit EEMEN w rejestrze WMCON. Wtedy eeprom widziany jest jako pamięć xdata (adresy 0x0000-0x07ff), i odczyt odbywa się tak, jak zmiennych z przestrzeni xdata, np: xdata char eep_var; data char x; (...) WMCON |= 0x08;//wybor pamieci EEPROM jako XDATA x = eep_var; Dodatkowo aby móc zapisać EEPROM,...
Można napisać program, który nie ma żadnego sensu i Eclipse nic nie zgłosi, on nie ocenia poprawności algorytmu tylko czy składnia jest OK, nawiasy, średniki, itp. Na pewno uruchamiając program w main() powinieneś odczytywać zmienną zapisaną kiedyś tam, a po użyciu jakiegoś przycisku zapisywać nową wartość. Raczej nie widać tu użycia write, a read w...
Prosiłabym o wyrozumiałość i pomoc w nakierowaniu mnie na rozwiązanie problemu. Spróbuję nakierować :) Jeśli zapis ID do eeprom ma być jednorazowy, w kodzie programu deklarujesz (wcześniej innym programikiem i LCD odczytane) ID $eeprom Termometr2: 'nr seryjny termometru 1 Data 40 , 25 , 0 , 133 , 2 , 0 , 0 , 196 Termometr1: 'nr seryjny termometru...
Hej, nie wiem czy to pomoże, ale ta wartość jest bliska 2^32, co może świadczyć o tym, że w eepromie są same 0xFF. Spróbuj może cały eeprom zapisać w 0x00 (najpierw zrób backup) i może to pomoże.
Witam. Programuję w BASCOM AVR. Potrzebuję mieć zapisaną wartość zadanej temperatury do porównania z wartością otrzymaną z DS18B20. Nastawiam wartość operując bezpośrednio na zmiennej SINGLE, ale mam ją w pamięci programu, więc jak coś się wyłączy to już nie będzie działało tak jak trzeba. Muszę więc to gdzieś zapisać. Druga sprawa to jak zmieniać wartość...
No i właśnie lektura tego postu doprowadziła mnie do szczęśliwego zakończenia, bo układ działa (sprawdziłem). Teraz zapis i odczyt z EEPROMu. Dodano po 1 Zaczął się robić bałagan w programie, wiec utworzyłem sobie oddzielne pliki EEprom.h i EEprom.c i tam chcę też umieścić funkcje zapisu i odczytu. Po podłączeniu zasilania potrzebuje zrobić taką procedurę,...
EEPROM ma ograniczoną ilość zapisów, powiedzmy 100tys. Powiedzmy, że mam do zapisania kilka/naśco/dziesiąt bajtów konfiguracji. Wymyśliłem, jak zrobić, aby przy każdym zapisie użyć innego obszaru pamięci. Ale może są lepsze sposoby, to mnie na nie naprowadźcie. Mój pomysł jest taki: 1. Za pierwszym odpaleniem, lub na jakiś przycisk ZERUJ_PAMIEC zeruję...
serdeczne dzięki, jednak nie wiem niestety pewnie podstawy - w jaki sposób zapisać coś kolejnego, tzn. jeśli np. chce wysłać to moje 12301234 do eeprom I2cstart I2cwbyte Adresw I2cwbyte 1 I2cwbyte 3 (czy tu można wpisać 12301234) ?? I2cstop i dalej - jeśli teraz chce zapisać wartość 14501234 jako następną wartość w eepromie to nie wiem jaką kolejną...
co poprawić ? Jasność wypowiedzi i pisownię. Funkcja uart_puts() jest przystosowana do odczytywania danych z eepromu? (dopisane po zmianie pierwszego postu przez Autora) czy zawartość(tekst) tokena jest poprawnie zapisana do eeprom Jeśli "zapis do eeprom" to ta linijka: jak wysłać zapisaną wartość (tekst) w eeprom na uart ? Przypuszczam, że funkcja...
Z EEPROM jest wiele zabawy. Najprościej nie zapisywać co 1-2m dystansu, jak miałeś w programie, czy co 1s, jak się zrobiło gdy przeniosłem Ci to do loop. Masz odmierzanie czasu tym nieszczęsnym delay 1000, to definiuje najmniejszą jednostkę czasu w tym programie. Naucz się millis() i usuniesz to ograniczenie. Ale tu też można coś wyrzeźbić, po tym delay...
Więt tak: deklaracja zmiennej : [syntax=c] volatile uint16_t zmienna = 0; // - zmieniam tą wartość później na 300 [/syntax] włączam przerwania według konfiguracji zegara (8MHz - wewnętrzny) [syntax=c] //- uruchomienie eepromu extern EEMEM uint16_t eeprom_values[200]; EEMEM uint16_t eeprom_values[200] = {0,0}; //- konfiguracja zegara void Init_Timer0_OVF(){...
Przecież domyślnie taka pamięć ma 0xFFFF w poszczególnych komórkach (organizacja pamięci to 16 bit). Konkretniej pamięć taka może przechowywać 64 słowa 16 bitowe, co daje 64*16=1024 bity. Nic szczególnego. Jak wykasować taką pamięć ? Wystarczy w dowolnym Hexedytorze stworzyć plik, w odpowiednim formacie (BIN/INTEL HEX) z samymi wartościami 0xFFFF. Tak...
Procek ma tylko zapisać wartość w EEPROMIE oraz po jakimś czasie odczytać. Chyba za szybko nie jest , 10ms przerwy po zapisie chyba wystarczy... Spróbuję jeszcze zwiększyć czas.
Zagadnienie jest dość złożone, ale zacznijmy może najpierw od faktu, że AVR-ów nie programuje się w C/C++. W tym języku możesz co najwyżej napisać program, skompilować go i otrzymać plik wynikowy/wsadowy z kodem maszynowym zrozumiałym dla uC. Dopiero wtedy możesz zaprogramować uC i nie ma to znaczenia, czy kod źródłowy został napisany w C/C++, asemblerze...
Dokładnie, zdaje sobie sprawe, ze to jest już troche archiwum. O dziwo działa na ESP32 jeśli przytniemy długość tego EEPROMu i np. zrobimy tak: EEPROM.begin(3); EEPROM.put(1, bank_nr); EEPROM.put(2, station_nr); boolean res = EEPROM.commit(); Serial.println("potwierdzenie zapisu EEPROM"); Serial.println(res);...
Problem rozwiązany... Temat można zamknąć. W pamięci 93LC46 (Microwire16 eeprom) za kod fabryczny odpowiada wartość adresu. 00020: 00 24 .. .. .. .. .. Pamięć można odczytać/zapisać prostym programatorem opartym o si-prog (fot. poniżej), koszt jakieś 4 zł... http://obrazki.elektroda.net/14_12115881...
Witam. Progamując nie korzystałem z EEPROM, a jeśli już to z zapisu i odczytu i to w bascomie. Tam sprawa jest prosta 2 komendy. Pisząć w asemblerze na AVR chciałbym aby program pobierał dane z pamięci EEPROM. Zdeklarowałem w pamięci EEPROM miejsce od którego mają być dane zapisywane. Następnie muszę wpisać dane - tylko nie wiem w jaki sposób to umieścić...
Udało mi się wreszcie zapisać i odczytać 16 bitów w eepromie, zrezygnowałem z funkcji, oraz uprościłem instrukcje do niezbędnego minimum: [syntax=c]//reklaracja zmiennych uint32_t address = 0x8080014; //adres eepromu, poczatek jest pod adresem 0x8080000, ten adres to 0x8080000 + 20 uint16_t data_read = 0; //dane do odczytu dwa bajty uint16_t data_write...
Jeśli masz instalację IV generacji to nie powinny być konieczne żadne kombinacje z zasilaniem sterownika benzyny. Po prostu trzeba właściwie skalibrować tą instalację i dbać o regularną wymianę filtrów oraz, być może, zainwestować w bardziej stabilne wtryskiwacze LPG. czy istnieje ryzyko takiego rozjechania adaptacji, że konieczna będzie kosztowna reanimacja...
4. Blokowy układ pamięci wynika z ograniczonej przestrzeni adresowej. Dany układ nie pozwala na adresowanie każdego bajtu z osobna więc stosuje się bloki np po 64 lub 128 bajtów. Zatem wybierając adres powiedzmy 32, zaglądasz do szufladki w pamięci do której możesz zapisać te 64 lub 128 bajtów. Adres 33 wskazuje na inną "pustą" szufladkę w której jest...
Tutaj pewnie zamiana adresów byłaby wykrywalna, ale jak to zrobić ? Co do CRC, to nie ma problemu, żeby w Delphi dorzucić tablicowanie danych. To jest płytka testowa, także czas i i miejsce w pamięci oczywiście w granicach rozsądku nie mają znaczenia. , np 1 bajt mnożyć x1, drugi x2, trzeci x3, czwarty x4, można też spróbować dodać do wartości z pamięci...
Witam, Zacząłem przygodę z xmegą i po uporaniu się z portami próbuję teraz uporać się z eeprom-em. Odczyt zapisanej komórki eeprom czy to przez "NVM" czy "maping eeprom" jest ok. Gorzej jeśli chodzi o zapisanie komórki eeprom. Na razie nie mogę przetestować fizycznie bo padł mi programator a w symulatorze wartość bajtu nie wpisuje się do eeprom. Nie...
No właśnie parametry transmisji ustawiałem niepoprawne, 9600 i większe a nikt nie wspomniał ze maja być 2400.Myślę że dalej sobie poradzę ,dziękuję za odpowiedz. Hm na stronie http://elm-chan.org/works/smc/report_e.h... parametry transmisji zalecane to 38.4k bps, ja tak ustawiłem i bez problemu się łączył. Jak zmienić parametry M P1 P2 itd.. Wpisuje...
No tak: Twoje "fajnie", "tylko" przyspiesza zapis, okradając mnie z prawie 1kB SRAM :| , moje dawało mi i szybki zapis i "za frajer" pamięć SRAM. A teraz koniec "snu o potędze" :cry: WIELKIE DZIĘKI J.P. ps. jak tak dalej pójdzie to skończę poniewierką po GPIOR i nieużywanych rejestrach peryferiów… ps2. Dla jasności: zachowanie się bufora potwierdza,...
Wspaniały przykład na to jak nie należy realizować projektów. I nie chodzi o tragiczny program, ale o wyjątkowo nieefektywny sposób realizacji samego zadania. Kolego, przeszukaj Forum, a znajdziesz przynajmniej kilka takich projektów. W skrócie: - nie potrzebujesz zapisywać danych do EEPROM co 1s, ani co 1,5s, ponieważ czas możesz zliczać w RAM, a zapis...
Witam, Ważna uwaga: typ long jest całkowity, nie ma części ułamkowej, trzeba użyć single lub double. Mała wskazówka z helpów (polski ubogi pełny po angielsku w programie) Pamięć ERAM. Większość procesorów serii AVR posiada wbudowaną pamięć EEPROM. Pamięć ta może przechowywać dane nawet po wyłączeniu zasilania. Jak podaje producent nawet do 10 lat. Pamięć...
Wgrać należy sam plik ATmega8_clock czy też eeprom. P6” - strojenie oscylatora RTC, dostępne wartości od -127 do +127. 1 krok to zmiana częstotliwości oscylatora o 1,017ppm, czyli około 0,088s na dobę. Uwaga 1! Przy ustawianiu tego parametru krótkie naciśnięcie przycisku S1 zwiększa wartość o jeden, a dłuższe przytrzymanie powoduje szybkie zmniejszanie...
Nie bardzo rozumiem. na pierwszym miejscu mamy zadeklarować gdzie ma być zapisana czyli adres, a na drugim zmienna. zmienna w RAM to kWh_stan zmienna do eeprom to kWh_stan_ee - ewentualnie jak to się nie pomiesza to może być jedna zmienna kWh_stan do eeproma i do Ramu. uiAddress jest zadeklarowana na samym poczatku jako float uint16_t uiAddress = 0...
Witam Jak w temacie - wykonuję zapis danych do pamięci EEPROM, po ich weryfikacji wszystko jest ok. Mogę je odczytywać i wszystko działa. Problem się pojawia, gdy chce je odczytać po ponownym uruchomieniu procka - dane się "ulatniają"!? O co chodzi? Dodam, iż używam AVR Studio 4 i korzystam z bibliotek Atmel'a. Zapisuje dane w pojedynczych bajtach:...
Z praktyki: - wygodniej trzymać dane w strukturze, niż w pojedynczych zmiennych; przy składowaniu danych w pamięci Flash wygodnie jest mieć unię zawierającą strukturę i wektor bajtów lub słów - w pamięci ROM mamy na stałe zapisaną domyślną wartość struktury konfiguracyjnej - jeśli mamy EEPROM, to w EEPROM trzymamy kopię struktury z RAM, a po modyfikacji...
Jeżeli kolega zapisuje tylko jedną komórkę w pamięci to mogę podsunąć jeszcze jeden sposób, który kiedyś się komuś może przydać a mianowicie wykorzystane jest pewnie tylko kilka wartości z przedziału 0-255 więc można ustawić jakąś wartość komórki pustej a następnie odczytywać ostatnią zapisaną lub zapisywać pierwszą nie zapisaną komórkę kiedy się skończą...
Tu moderator ma akurat rację. Chciałbym abyś się nie obraził to co napiszę poniżej ale przemyślał. Twierdzisz że laptop nagle przestał Ci ładować baterię, czy nie warto się zastanowić dlaczego tak się stało. Elektronika jest po to w bateriach laptopowych żeby nadzorować jakość i stan ogniw a nie dlatego żeby utrudniać zresetowanie EEPROMU. Prawdopodobnie...
zapisać eeprom bascom zapisać eeprom 93c46 zapisać
internet tablet lenovo silnik dymić biały projektor błąd
Hałas napinacza łańcucha rozrządu VW 1.8T na wolnych obrotach – przyczyny i diagnostyka Philips PerfectCare Elite GC9620 – brak pary, awaria pompy JYPC-3, odkamienianie, diagnostyka