EEPROM ma ograniczoną jedynie liczbę zapisów.
Pamięć EEPROM ma ograniczoną liczbę zapisów i tym samym żywotność, być może tu jest problem. Choć to mało prawdopodobne.
Zobacz to : [url=http://radzio.dxp.pl/eeprom/]EEPROM
Witam! Jak dla mnie, to wcale nie jest dziwne że ten kod nie działa, nawet po zmianie adresów. unsigned char licznik[6] = {0,0,0,0,0,0}; void licznik(void) { ... } Nie możesz mieć w programie dwóch symboli (w tym wypadku tablicy oraz funkcji) o tej samej nazwie. Prawdopodobnie nie jest to jednak powodem złego działania,...
nawet po 2 mln zapisów EEPROM jeszcze trzyma dane. Liczba zapisów EEPROM FLASH jest o tyle ciekawy, że gwarantowane cykle zapisu nie oznaczają, ze po np 100000 pamięć przestanie działać. Najpierw zwiększa się czas zapisu (właściwie kasowania) takiej komórki pamięci. Tak juz było za czasów EPROM. Kolejny problem, to czas trzymania ładunku, takiej "zajeżdżonej"...
http://www.elektroda.pl/rtvforum/topic14...
Pod daną komórkę. Dlatego np. przy dużej liczbie zapisów pojedynczego bajtu dobrze jest zmieniać adres.
Witam. Nie bardzo rozumiem o co ci chodzi. To jest mikrokontroler 8 bitowy i pamiec jest zorganizowana w komorki 8 bitwe. Wiec jesli chcesz zapisac np zmienna typu int robisz to tak: zapis gornych 8 bitow -> zwiekszasz adres -> zapis dolnych 8 bitow/mozesz i odwrotnie ,zalezy to od twojego zapisu notacji/ i analogicznie robisz odczyt. Ponizej...
Pamięć EEPROM może być przeprogramowana elektrycznie, bez potrzeby kasowania ultrfioletem. Jest pamięcią nieulotną, stosowaną do przechowywania programów i danych. Wadą pamięci typu EEPROM jest długi czas zapisu wynoszący zwykle od kilkuset nanosekund do około 1 milisekundy. Liczba cykli zapisu-kasowania jest ograniczona i wynosi typowo 10 000. Pamięć...
Obawiam się, że rozmiar strony może zwiększyć tylko producent, i to na etapie projektowania układu. ;) Użytkownik może za to określić liczbę stron, których che używać.
Zły pomysł... Tak można czytać z eeprom a wpętli... nie, NIEMOŻNA pisać do eeproma w pętli. (skońoczna liczba zapisów). Przy starcie systemu odczytaj z eeproma do jakiejś zmiennej ustawienia (zmiennych) i porównuj następnie z nimi... Łukasz. P.S. Odczyt jest dużo szybszy niż 1sekunda... DUŻO SZYBSZY. Łukasz.
No niestety rozkład liczby ujemnej nie działa tak samo jak dodatniej - pytanie jak rozłożyć liczbę ujemną i zapisać do eeprom Poniższy kod nie działa [syntax=c] //Zapis EEPROM.write(17,liczba_ujemna); liczba_ujemna /= 256; EEPROM.write(18,liczba_ujemna); //odczyt liczba_ujemna=0; liczba_ujemna+=(int16_t)EEPROM.read(18); liczba_ujemna*=256; liczba_ujemna+=(int16_t)EEPROM.read(17);...
Mój sposób nr 1: -zakładasz w jednej lub dwóch komórkach wskaźnik do bieżącej struktury roboczej, składającej się z licznika zapisów (3 bajty) oraz rejestru przechowującego zmienną (o dowolnym rozmiarze), -następnie tworzysz funkcje do zapisu oraz odczytu zmiennej. Fun do odczytu ustala za pomoca wskaznika poczatek struktury w EEPROM, a nastepnie odczytuje...
Zgadza się, ale wewnętrzny EEPROM ma ograniczoną liczbę zapisów. Niby 100 tys cykli to dużo ale symulacje pokazują, że liczba ta się może wyczerpać. Poza tym podobno niektóre klony sypią się już po paru tysiącach. Dlatego chciałbym zastosować coś innego.
Jeśli symulator zapisał pierwszą komórkę powinien zapisać kolejne , ciężko to zobaczyć przy pracy krokowej bo zapis eeprom trwa od 3,4ms do 8,5ms w rzeczywistości ale w symulatorze należy to odnieść do ilości cykli mikrokontrolera . Biorąc pod uwagę że symulator programowy możliwie wiernie naśladuje mikrokontroler możliwość zapisu kolejnej komórki wystąpi...
A może skorzystasz z biblioteki eeprom.h? Jest tam procedura eeprom_write_byte (uint8_t *addr, uint8_t val); - do zapisu [nie rozumiem tylko dlaczego adres jest 8-bitowy - przecież np. ATmega8 ma 512 bajtów EEPROMU...] oraz uint8_t eeprom_read_byte (const uint8_t *addr); - do odczytu bajtu. (Jest też fajna procedurka eeprom_read_word(..) / eeprom_write_word(..)...
(...) rony jak i dowolnej liczby bajtów mniejszej od rozmiaru strony. Czy jeżeli zrobię zapis 2 bajtów na środku 64-bajtowej strony, to czy pozostałe 62 bajty zostaną "przepisane", a więc ich żywotność obniży się o cykl zapisu? Czy może EEPROM faktycznie wewnętrznie dokona wymazania i zapisania tylko 2 bajtów. Algorytm bufora cyklicznego jest powszechnie...
Żywotność pamięci statycznych jest nieograniczona ,tam jako komórka pamięci pracuje przerzutnik zbudowany z 4 lub 6 tranzystorów CMOS.Gdyby liczba cykli zapisu była ograniczona np. do miliona to pamięć zużyłaby się w czasie ułamka sekundy bo SRAM to szybkie pamięci ,zwykle taktowane częstotliwościami wielu megaherców.Podobnie jest z pamięciami DRAM...
Powiem szczerze, że nie widzę problemu. Co za różnica czy liczba jest taka, czy inna, w takim lub innym kodzie? Jest zapisana na iluśtam bajtach i tyle po koleji trzeba zapisać do eeproma. Odczyt w kolejności odwrotnej i wpisanie do zmiennej o takim samym formacie jak dana zapisywana. Ot i wszystko.
1. Zapis do EEPROM będzie dosyć prądożerny 2. EEPROM ma określoną liczbę zapisów i w ten sposób mógłbyś go zajechać w jakimś sensownym czasie. 3. Jak dobrze widzę w dokumentacji to stan rejestrów przy power-down jest zachowany, więc można to zrobić bez użycia eepromu. 4. Pamiętaj o wyłączeniu ADC i innych dodatkowych funkcji przy przejściu w stan uśpienia...
Ciężko ci to zrozumieć że od samego początku masz źle? void konwert2(char tekst char tekst do char pomoc ?
Nie. Lecz ktoś mniej rozgarnięty zobaczy przykład, zacznie operować zmiennymi w EEPROMie w pętli Do Loop a później napisze temat, że procesor odczytuje niepoprawnie zmienne z EEPROMu. Wiem, że to będzie jego wina bo jak się coś robi to trzeba wiedzieć co i raczej oczywistym jest, że EEPROM ma ograniczoną liczbę zapisu jednak jeżeli podaje się przykład...
4) W/g mnie kiepska droga - nie lepiej jakąś równoległą pamięć flash?:> EEprom, ograniczona liczba zapisów, (24xx) interfejs szeregowy... A próbkować byś to musiał tak chociaż te 20kHz, żeby mieć jakość telefoniczną (do 9KHz)... Dodano po 45 Pomyśl nad jakąś sporą ilością ramu i np. SD?
EEPROM 16Kb kosztuje grosze, a gwarantowana liczba cykli zapisu jest lekko mowiac mocno konserwatywna, ale odnosi sie do kazdej komorki. Coz prostszego jak sprawdzic? Podlacz ja do komputera "np przez LPT" i zapisuj naprzemian FF i 00 do wybranej komorki. Glowy nie dam ale jak by ci padla nowoczesna kosc przed miliardem cykli bym byl zdziwiony. Milion...
temat jest o zupie a wy o d... Pomijając wywody natury ogólnej masz kolego do wyboru wewnętrzną pamięć RAM od pcf-a i to nie małą bo 240 bajtów albo stałą od eeproma. Jedno i drugie jest dobre bo pcf ma podtrzymywanie bateryjne (chyba go uzywasz) ale kiedy bateria padnie to zapisy znikną więc pewniejsze jest umieszczenie tych informacji w pamięci eeprom....
Hej, Kiedyś miałem podobny problem. Aby sprawdzić ile danych możesz zapisać, możesz uruchomić program podobny do tego poniżej. Program ten (a właściwie jego fragment) w pętli zapisuje liczbę do pamięci EEPROM. Zapis jes uruchamiany przrerwaniem INT0, a zapisywana liczba jest w kolejnych krokach zwiększana o 1. Później musisz tylko odczytać tę liczbę...
Odnoszę wrażenie, że cały problem polega na tym, że widzisz wartość binarną ADC jako tekst. Na przykład liczba 455 traktujesz jako 3 znaki: '4', '5' i '5'. Potraktuj liczbę 455 jako liczbę 2 bajtową bez znaku, czyli uint16_t, czy unsigned int (zależnie od notacji). Oto przykładowy kod: [syntax=c]uint16_t adc_pos; //zapis do eeprom-u zmiennej adc_pos...
2) Jak się zabrać do tego by zrealizować taki zapis do flash (emulowanego EEPROM)? Nie mam pomysłu a niczego wartego uwagi nie znalazłem. Nie trzeba nic wymyślać bo STM ma własny, stosunkowo dobrze opisany algorytm na emulację EEPROM dla całego szeregu procesorów w tym F0. Który jest atrakcyjny, dlatego że w bardzo małym stopniu "zużywa" limit żywotności...
Ok napisałem taki kod i działa: [syntax=basic4gl]$regfile = "m16def.dat" 'wybór procesora $crystal = 8000000 Config Porta = &B00000000 Config Portb = &B00000000 Config Portc = &B00000000 Config Portd = &B00111111 nop Porta = &B11111111 Portb = &B11111111 Portc = &B11111111 Portd = &B11000000 nop S1 Alias Pinc.3 'przycisk zmniejszania liczba o 1 S2 Alias...
Wygląda że 16bit. "Jeżeli wystąpi błąd, dane w odpowiednim adresie EEPROM zostaną nadpisane. Dane w odpowiednich adres ma pojemność 2 x 16 bitów. Pierwszy adres (1 x 16 bitów) zawiera najnowszy zapis licznika godzin błąd. Drugi adres (1 x 16 bitów) zawiera zapis licznika godzin pierwszego błędu wraz z sumą liczba błędów w przeszłości. Dane zostaną zapisane...
(at)excray static zmienia tylko zarkes widoczności symbolu, w niczym tu nie pomoże. (at)sp5gbw Przede wszystkim pamiętaj, że EEPROM ma ograniczoną liczbę zapisów. Zapisując go co 10ms wykończysz daną komórkę już po 5-10 tys. sekund. Trzeba więc dodać wear leveling, albo zapisywać tylko w chwili zaniku zasilania. Poza tym w programie używasz niezainicjowanych...
wiem, że wewn. EEPROM atmegi8 ma ograniczoną liczbę zapisów i kasowań. Nie wiem jak to jest we Flashu. Nie wiesz ponieważ nie chciało Ci się zajrzeć do dokumentacji. Na pierwszej stronie jest informacja Write/Erase Cycles: 10,000 Flash/100,000 EEPROM Chciałbym zrobić licznik rowerowy z zapisem dystansu. Coś takiego jak w samochodzie jest?
Kiedyś bawiłem się trochę w zabijanie pamięci EEPROM (ludzie mają różne hobby ;) i dla Atmegi8 wyszło średnio 4,5 miliona cykli do wystąpienia pierwszego błędu (temperatura i wilgotność pokojowa, wynik uśredniony z kilkudziesięciu testów, jeden cykl trwał coś koło 8-9ms). Pierwsze przekłamanie po tych kilku milionach a później coraz częściej (pisze...
Witam, Nie mogę zrozumieć dlaczego zapis do eepromu działa dla jednego obszaru a nie działa dla drugiego. To działa. [syntax=c] while (NVMCTRL.STATUS & NVMCTRL_EEBUSY_bm); eeprom_write_byte((uint8_t*)(&USERROW.US... while (NVMCTRL.STATUS & NVMCTRL_EEBUSY_bm); liczba = eeprom_read_byte((uint8_t*)(&USERROW.USE... [/syntax] a to nie [syntax=c]...
Witam. Tak, chodzi tylko o zapis, a ilośc odczytów jest nieograniczona. W praktyce wytrzymują zwykle znacznie więcej, liczby te mówią o gwarantowanej trwałości. Zwykle.[/quote]
Możesz sobie zrobić zapis do EEPROM z wykorzystaniem przerwania, te z bibliotek nie korzystaja z tego mechaniczmu - po prostu wprowadzają "chamskie" zwłoki i już. Przerwań od tajmera nie musisz wyłączać, chyba że chcesz w kazdym przerwaniu zapisywać do EEPROM. To będzie problem, po pierwsze nie da rady tak szybko, po drugie EEPROM też ma skończoną liczbę...
Jeśli układ ma służyć do nauki, tym samym przeżyć większą liczbę cykli programowania wymienione wyżej układy Altery mają jedną przykrą właściwość. Seria EPM3000, podobnie jak EPM7000 posiada dość stare technologicznie pamięci EEPROM, co przekłada się na deklarowaną liczbę zapisów nie przekraczającą 100. Z moich doświadczeń jest to (zależnie od egzemplarza)...
Układ ciekawy, ale coś mi nie pasuje - jeśli działa poprawnie po powrocie napięcia, to musi mieć jakiś RTC. Problemem jest też trwały zapis stanu - ESP nie posiada EEPROM, a zapisywanie stanu we FLASH to raczej kiepski pomysł ze względu na ograniczoną liczbę zapisów tego samego bloku. Dziwi mnie też "przekaźnik domyślnie zwarty" - czy układ wykorzystuje...
Daj FRAM nie nie będzie problemu z liczbą zapisu do EEPROM, to najprostsze rozwiązanie. Co do wykrywania zaniku napięcia masz zrobione to pokaż cały schemat, łącznie z zasilaczem. Prawdopodobnie, obciążenie jest małe i brakuje czegoś, co rozładuje szybko pojemność wyjściową zasilacza. W konsekwencji, pojemność zasilacza rozładowuje się razem z kondensatorami...
Tak jeszcze pójdę tym tropem. Faktycznie w pdfie jest napisane że adresujemy dwoma słowami 8 bitowymi. Próbuje napisac procedure która by mi rozbiła licznik zapisu do eeprom(w postaci dziesiętnej) bedący integerem np komórka nr 500 na dwie liczby 8 bitowe bedące adresem zapisu. Niestety samo rozbicie na dwie 8 bitowe potrafie zrobić ale niestety ten...
Osobną kwestią jest częstość zapisów. Bo przy założeniu że moduł jest zasilany zawsze, zapisujemy liczbę motogodzin tylko w momencie sygnału zatrzymania mierzonego silnika. Takie liczniki, do eeprom, zapisywałem w momencie wyłączenia zasilania procka ale także, dla bezpieczeństwa co jakis czas. Liczyłem go tak, aby nie przekroczyć dopuszczalnej liczby...
Pamięci EEPROM mają ograniczoną liczbę cykli zapisu. Przy każdej zmianie parametrów audio bądź innych które są zapamiętywane w pamięci nieulotnej odliczają się cenne cykle. A po przekroczeniu limitu mogą pojawiać się problemy.W mądrych urządzeniach procesor po zapisie w pamięci oblicza sumę kontrolną dla zawartości całej pamięci i zawsze potem nad tym...
Przyjrzyj się prototypom funkcji operujących na EEPROM - pierwszym argumentem jest adres, a drugim dana, powinno więc bć eeprom_write_byte(&liczba_LED,1);, analogicznie przy odczycie. Zapis &1 co ma wg ciebie robic? Pobierać adres literału? Druga rzecz, zmienne w pamięci EEPROM powinny być globalne, nie ma sensu ich definiować lokalnie, co prawda w...
Write_to_eeprom(0xAA,adress); //np adres 0xAA; przy daress=0; czekaj ( ile); liczba = Read_from_eeprom(adress); //zwraca mi liczbe zczytana powinno dzialac
rejestry są czym innym niż EEPROM i możesz to robić ile razy tylko chcesz.
Proszę uprzejmie Kolegów o pomoc w rozwiązaniu trudnego dla mnie problemu. Jeżeli jest to dla Was banalna sprawa, to proszę o wyrozumiałość – ostatnim i jedynym językiem programowania z jakim miałem do czynienia był BASIC na „komputerze” ZX81. Innych „grzechów” na tym polu nie pamiętam. Teraz pradziadek został zobligowany do wykazania się wiedzą i umiejętnościami...
Nie rozumiem co ty chcesz zapiać w eepromie. Konwertujesz temperaturę do float, później do stringa, ze stringa do liczby całkowitej. Jesteś pewien że w zmiennej pomiar_t po twoich kosmicznych operacjach jest liczba różna od 0?
Witam serdecznie. Po przeszukaniu wątków nie napotkałem na rozwiązanie problemu o podobnej treści. Mianowicie dotychczas korzystałem z eepromu w ten sposób: Piszę językiem C: [syntax=c] extern EEMEM uint16_t eeprom_values[200]; EEMEM uint16_t eeprom_values[200] = {0,0}; //- zapis to zmienna = 85; eeprom_write_word(&eeprom_values[10], zmienna); //odczyt...
Nie ma tam oddzielnej funkcji do zapisu, wszystko robi obsługa żądania http. Jak już pisałem i jest w dokumentacji: conf.handleFormRequest(&server); Spróbuj w ramach ćwiczenia dodać sobie pole o nazwie "robo" typ liczba całkowita (odpowiedni INTEGER) zobacz czy ci się pojawi na stronie, zmień ją z przeglądarki, zapisz, wyłącz wszytko, włącz i zobacz...
Sorki, ale nie po to dążę do miniaturyzacji, aby stosować super procesor ARM a do tego baterię, lub zewnętrzny eeprom. Stosowanie zewnętrznego EERPOM ma sens gdy trzeba umożliwić łatwe przełożenie pamięci do innego urządzenia (w serwisowanym urządzeniu wymieniasz płytę główną eeprom wystarczy przełożyc ze starej do nowej). Wtedy daje sie taka pamięć...
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...
Ograniczenie dla pamieci eeprom i flash dotyczy tylko liczby cykli zapisu i kasowania a nie dotyczy odczytu. Czytac mozna dopoki zanieczyszczenia z procesu produkcyjnego nie zmigruja w obszar drenu tranzystorow polowych. Dla obecnego stanu technologii okres ten szacuje sie na okolo 20 000 lat. Czy tyle Ci wystarczy :P ? Pozdrawiam, Y E G O
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.
Tworzy się W EEPROM dwie tablice jednakowej wielkości. Dla ATtiny13 to będzie od 00 do 1F i od 20 do 3F. W jednej z tablic zapisuje się żądaną wartość. W tym przypadku jeden bajt określający stan wyjść. Zapisuje się go zawsze do kolejnej komórki - najpierw do 00, potem od 01 itp, aż dochodzi się do 1F o znów do 00. Po co tak komplikować? Wiem, że to...
No tak, trochę mi to rozjaśniło sytuację, aczkolwiek mam pewne niejasności w kwestii poszczególnych bitów rejestru EECON. Moja koncepcja wygląda następująco: W odpowiednim fragmencie programu, tam gdzie ma być zapis do EEPROM trzeba ustawić bit EEMEN, a następnie co, co z bitami EEMWE, EELD? U mnie zapis będzie ręczny, więc odstępy miedzy kolejnymi...
Mam taki problem. Procesor wykonuje jedną z kilku pętli nieskończonych, w przerwaniu przychodzi rozkaz zmiany wykonywanej pętli. W pętlach nie chciałbym zawierać kodu odpowiedzialnego za sprawdzenie flagi konieczności zmiany pętli i jej przerwania. Wymyśliłem, że będę restartował procesor (układem watchdog), jednak muszę zapamiętać gdzieś numer pętli...
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...
Doszedłem do ładu z tym, cała funkcja jest napisana prawidłowo i skrajne zakresy zawsze powinne się pokrywać niezależnie od obliczeń na liczbach całkowitych. Błąd był jedynie w zapisie złych zmienny do eepromu...
Oto jest pytanie, nie wiem a nie ma? Hmm... myślałem że wszystkie ATMELE mają, ale AT89s52 jest z rodziny 8051 więc może nie mieć. Więc tak jak dołączyć EEPROM jak go obsłużyć programowo? jaki ma być bo ma zapamiętać mi jedną liczbę w zakresie (-40;40); jeśli ma ktoś pomysł jak to zrobić to proszę o pomoc.
Napiszę o co mi chodzi... Mam impuls cyforwy z czujnika trwający od 0,5 do 1sek, co 1...5sek. Sygnał może być zakłócony dlatego zdecydowałem się na częste sprawdzanie impulsu a nie tylko raz czy nawet kilka razy. Muszę mieć prawie 100% gwarancji na zarejestrowanie impulsu, żadnego nie mogę przeoczyć. http://obrazki.elektroda.pl/4623690400_1...
Witam, zastanawiam się nad interpretacją noty katalogowej atmegi dotyczącej gwarantowanej liczby zapisów do epromu czyli 100 000 zapisów. Czy dotyczy to jednej komórki pamięci np.0x30 czy całego obszaru? Chodzi mi o to czy zapisując do tej komórki (0x30) gwarantowaną liczbę cykli straci się gwarantowany zapis do pozostałych obszarów eepromu?
Więc myślałem, że nie ma to jak pamięć flash i brak ruchomych części. Weź pod uwagę fakt awaryjności takich kart, ilość cykli odczytów i zapisów pamięci. Karta SDHC nie jest dobrym, ani bezpiecznym rozwiązaniem. Wszystkie rodzaje pamięci EEPROM, w tym pamięci flash, mają technologicznie ograniczoną liczbę cykli kasowania (zapisu) – przekroczenie...
Podejrzewam, iż źle odczytuje z tablicy danych. Zrób test - zamiast zer wpisz kolejne liczby od 0 do 255 lub daj cztery zera w zapisie danych.
5555 to po prostu pewna liczba (choć o ciekawym obrazie w zapisie binarnym). I w tym przypadku akurat użyto jej do szyfrowania kodu za pomocą prostej operacji matematycznej bo tak sobie wymyślili inżynierowie Delphi. Ale to tylko jeden z wielu algorytmów i prawdziwy dla stosunkowo wąskiej grupy radiów nawet tego producenta. Nie wiem, jakie Pan ma wykształcenie,...
Najłatwiej to zrobić z użyciem canvas HTML5. konkretnie do zmiennej zapisujesz wyniki (tablica javascript). Znając częstotliwość zapisu wyniku (np. 15 minut) wystarczy podczas zapytania podać jeszcze liczbę minut lub sekund od ostatniego pomiaru (w innej zmiennej javascript). Wtedy można stworzyć wykres umieszczony w czasie rzeczywistym (np. ostatni...
Więc gdzie tutaj jakaś optymalizacja? Chyba, że featurkę dopisali w źródłach, a nie umieścili w opisie. Jest to zrobione w podobny sposób, jak to opisałeś tzn. przez zmianę pozycji startowej i określenie długości segmentów, w jakich będą wykonywane operacje odczytu i zapisu. W tej drugiej bibliotece jest podobna idea, tylko nieco bardziej "skomplikowany"...
W momencie zapisu (konkretniej w jednym jego kroku) trzeba wyłączyć przerwania, bo pamięć EEPROM wymaga ściśle określonej liczby cykli. Jest to opisane w datasheecie np. ATmega8. Nie wiem czy funkcje w Bascomie to realizują, ale można sobie napisać je samemu i to bez stosowania wstawek assemblerowych, Bascom umożliwia przecież operacje na rejestrach...
Fakt, może trochę nieprecyzyjnie się wyraziłem. To nie jest procesor lecz mikrokontroler. Kolego, czy też może Koleżanko dorota_g, napisz może na czym opierasz swoje przekonanie? Te mikrokontrolery nie maja żadnej wady fabrycznej tylko się zużywają. Wewnątrz posiadają bowiem pamięć eeprom ( jak cała masa innych mikrokontrolerów ) która ma ściśle określoną...
Wykasowanie i ponowne zapianie pamięci EEPROM zewnętrznym programatorem nic nie da. Radio ma tak napisany program, że za każdą zmianą wartości głośności zapisuje ją do komórki pamięci nieulotnej EEPROM. Jak wiadomo pamięć nieulotna czy to będzie EEPROM, czy FLASH posiada ograniczoną liczbę cykli zapisu. Czyli ciągle kasując i zapisując w te samo miejsce...
Dziękuję kolego, odpowiedź krótka i na temat. Pętle zapisu były za długie o jeden znak - uwzględniłem znak końca łańcucha ale podczas liczenia znaków liczyłem od jeden zamiast od zera, stąd liczba znaków wyszła o jeden za duża. Pozdrawiam
Mam mały problem - nie potrafię przenieśc kodu z bascoma do avr c (eclipse). Tzn, wiem ze nie przeniosą go 1:1 chodzi mi raczej o ogólne zasady, szkielet: chodzi o zapis do pamięci eeprom stanu licznika - licznik sie zmienia przy pomocy przycisków góra/dół - przy wyłaczeniu zasilania oczywiście jego zawartośc jest kasowana. Oczywiście zapis przy każdej...
Mecze się teraz z eepromem, szukalem w c jakichs przykladow zapisu/odczytu do wewnętrznego eepromu 8252 , wiem ze musze się skupic na WMCON i EEMWE i EEMEN, sdcc nie ma definicji WMCON wiec dozucilem mu ze jest na 96h. I teraz jak rozumiem z dokumentacji dostep do eepromu realizowany jest przez xdata w momencie gdy EEMEN=1 ? Przykladowy zapis: czyli...
Oczywiście że w tej pamięci możesz zapisywać tylko pojedyńcze bajty. Jeśli chcesz zapisać większe liczby to musisz je rozbić na bajty, zapisać a potem po odbiorze posklejać. W Twoim przypadku jeśli masz zakres od 200 do 400 to oczywistą rzeczą jest zapis liczby pomnijeszonej o 200 a potem dodanie 200 po odczycie.
Po kiego grzyba Ci te "hexvalue" skoro ta funkcja (jak nazwa wskazuje) zamienia liczbę w String :?: :arrow: zumek : Z HEXVAL() Przeznaczenie: Zamienia tekstową reprezentacje liczby szesnastkowej na odpowiadającą jej wartość. Wiec zamienia tekst na liczbę, odwrotnie niż pomyślałeś. Inna sprawa, to czy jest ona potrzebna przy zapisie do EEPROM w tym...
Podłączając się do tematu. Jak najbardziej znane są możliwości zwiększania żywotności eeprom przedstawiane powyżej. Jednak biorąc pod uwagę milionową ilość kasowania eeproma ($FF) czy nie można w jednej komórce eeprom np 9 przechować adres aktualnej zapisanej wartości np 10. Po każdym zapisie w komórce 10 byłaby dokonana kontrolna procedura odczytu...
itoa jak wejście przyjmuje liczbę całkowitą, a zwraca char (Int TO Ascii). A z tego co widzę, to twoja zmienna aaa jest typu char.
Należę do osób, które za wszelką cenę starają się same pogłówkować i znaleźć rozwiązanie Jedyna prawdziwa informacja, jaką przekazałeś tym zdaniem, to taka, że masz wysokie mniemanie o sobie. Jedyna prawdziwa informacja, jaką chciałem przekazać tym zdaniem jest taka, że zawsze staram się samodzielnie rozwiązywać wszelkie problemy korzystając z matematyki/fizyki/informatyki/czystej...
W pewnym urządzeniu muszę zapisywać do 512 zdarzeń do pamięci EEPROM. Z tym urządzeniem będzie się komunikować drugie, które kolejno będzie te dane odczytywać. Potrzebuję więc dodatkowo zapisywać dwa wskaźniki zapisu i odczytu danych. EEPROM ma 1mln cykli zapisu, więc przy standardowym zapisie (dane i wskaźniki zawsze pod tym samym adresem) zapiszę...
Witam. W pewnym miejscu programu potrzebuję zamienić zmienną word w zmienną byte, (chociażby po to by móc ją zapisać za pomocą polecenia writeeeprom w pojedynczej komórce pamięci eeprom / nie marnować pamięci eeprom). Na początku obliczenia wykonywane są na dużych liczbach - Getadc dla przetwornika 10 bit zwraca wartość 0...1023 (word) ale różnica powinna...
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.
return VoltageDivider*((r*1100)/1024); Jesteś pewien, że mnożenie 2 liczb 16bit da w efekcie wynik szesnastobitowy? Poza tym po co w tym przypadku stosujesz typ ze znakiem? To dodatkowo zmniejsza maksymalną liczbę dodatnią możliwą do zapisu o połowę... Co do zapisu do eeprom to IMHO dość szybko ubijesz sobie tym procesor. Nie lepiej użyć jakiejś zewnętrznej...
I2C wykorzystuje sprzętowy z procka. Z objawów jakie mam wynika, że jeżeli najstarszy bit w liczbie jest 1 (czyli od 0x80 włącznie) to liczba nie jest zapisywana. Liczby z zakresu 0x00 do 0x7F są zapisywane i odczytywanie poprawnie, ale większe nie są zapisywane. Więc nie gubię ostatniego bitu, a problemem jest pierwszy bit. Jednak dziękuje za zainteresowanie.
Jest udało się :) w końcu znalazłem chwilkę czasu i pobawiłem się programatorem:) Zrobiłem : liczbę zwiększam incr np 251 , potem dzielę przez 10 do innej zmiennej single i wyświetlam:) Działa i dziękuje za sugestię :) w programie operuje liczbami całkowitymi np 251;) jeszcze będę miał problemik z zapisem do eeprom żeby po braku zasilania zmienne odczytać...
Cytując znalezione artykuły w necie Karta CF ma ograniczoną żywotność, dużo mniejszą niż twardy dysk. Po prostu możesz ją momentalnie "zajeździć". Jak się stawia np. router, to nie jest to problemem (system się praktycznie raz wczytuje, a potem to chodzi z pamięci). Standardowe pamięci EEPROM pozwalają zapisywać lub kasować tylko jedną komórkę pamięci...
Nie jestem taki pewien. Dalej w opisie $noramclear jest napisane , że zawartość komórek pamięci nie zostanie skasowana , co nie oznacza , że pozostaną w niej zmienne, a raczej , że pozostaną w niej wartości przypadkowe. Prawdopodobnie będą one wypełnione wartością &H0FF , choć nie jest to pewne. Rozważam pomysł wykorzystania generatora liczb losowych...
Tu jedna komenda nie pomoże. Nie ma takiej co załatwiałaby całość. Obsługę dekodera DTMF musisz napisać sam. Czekasz na sygnał odebrania tonu i pobierasz 4 bitową liczbę. Liczba ta przelatuje przez konwerter znaków (00h-0Fh -> 0-9, *,#) i trafia do pamięci. Dostęp do EEPROM to także ciąg instrukcji: I2CInit, I2CStart, I2CRByte, I2CWByte, I2CStop. Napisałem...
Mam pytanie o zapis i odczyt z eepromu. jesli chcę zapisać do eepromu liczbę: 1001000001110111110001000011101111 i później ją odczytac, to mam to zrobić na zasadzie każdy bit to jeden adres? Czy może zrobić zmienną string, z eepromu do niej pobrać wszystkie cyfry i po kolei odczytywać z zeminnej string znaki? Żeby uniknąć tego długiego kodu, zrobię...
Inny sposó wyznaczenia tego adresu A = x+100*(y+100*z) 100x100x100 = milion komórek (bajtów, słów) Najprościej użyć jakiegoś sporego kawałka pamięci zewnętrznej (w stosunku do procesora) szeregowej (np DataFlash AT45DB161) lub zwykłej równoległej, nieulotnej (zwykły eprom/eeprom, SRAM z podtrzymaniem, pamięć FRAM). Gdybyś chciał pamiętać gęściej i dokładniej,...
http://obrazki.elektroda.pl/2762225800_1... Jedyny taki przenośny programator układów AVR. Pomoże wszędzie tam, gdzie trzeba zaktualizować oprogramowanie, a układ docelowy znajduje się w trudno dostępnym miejscu i nie mamy możliwości (lub chęci) ciągać ze sobą laptopa i mnóstwa przewodów. Banalnie łatwa obsługa, niski koszt wykonania, super...
Bootloader ma raczej 4096 bajtów Nie wiem co mi się uroiło pisząc 4048. bo jak coś skasuje taką funkcję to nawet nie wczytasz nowego firmware Święta prawda. Szczerze pisząc to kojarzyłem taką możliwość, bo wspomniałeś o niej w którejś z Twoich książek. Pozostaje mi jedynie metoda poprzez pobranie adresu pliku poprzez działającą aplikację, zapisanie...
Każdy pojedynczy zapis w obrębie 1 strony flash wymagający ustawienia dowolnego bitu na '1' oznacza skasowanie całej strony flasha i jej przepisanie z nową wartością. Co zabija flash? Jego kasowanie...
http://obrazki.elektroda.net/47_12754099... Przedstawiane urządzenie opracowane przez ludzi z dangerousprototypes.com znajdzie raczej zastosowanie w laboratorium kontroli jakości producentów elektroniki niż na półce elektronika amatora. Jednak ze względu na niecodzienność projektu warto jest o nim wspomnieć. Służy ono bowiem do sprawdzania wytrzymałości...
Pamięć EPROM jest dobrym rozwiązaniem jeśli chodzi o przechowywanie np. grafiki. Jeśli wbudowana w AVR okaże się za mała, to użyj zewnętrznej, np. 24c512. Pamiętaj tylko o ograniczonej liczbie cykli zapsu/odczytu. Dla ścisłości pamięć EPROM nie jest najlepszym rozwiązaniem, ale 24c512 to EEPROM i ta jest całkiem dobra. A co do ograniczonej liczby cykli...
Jeśli to co piszesz, jest prawdą, jest to poważna wada fabryczna... zwłaszcza jeżeli w instrukcji nie ma nigdzie ostrzeżenia. Tego typu błąd może się pojawić tylko jeśli eeprom jest zapisywany, a jeśli jest zapisywany przynajmniej raz przy każdym starcie to nie wróżę długiej żywotności tym laptopom, bo EEPROMy wieczne nie są i zawsze mają gwarantowną...
Firma gwarantuje liczbę zapisów przekraczającą 1014, podczas gdy dla pamięci FLASH wynosi ona 104, a dla EEPROM 105. Łatwo zauważyć, że FRAM pracujący jako pamięć operacyjna będzie zużywał się, ale czas do uszkodzenia wy-niesie co najmniej 8 lat. Wydaje mi się, że w ciągu tych 8 lat używa się RAMu więcej razy niż tylko 1014 razy...
Chodzi oczywiscie o zegar RTC, sorki za literowke. Moge zamiescic kod nie ma problemu, tyle ze program jest dość rozbudowany, wiec chyba to troche bez sensu, bo i tak nikt pewnie nie bedzie analizował. Problem tkwi w tym: zapis i odczyt danych do eeproma po i2c dziala bezproblemowo, zegar RTC po i2c takze chodzi, ale gdy chce zapisać dane o czasie(godzine,minuty,sekundy)...
Ja zrobiłem tak:(procek atmega 16 bo jak będzie mało eprom to wystawie mega32) Mierze sobie napięcie z przepływki ADC(0)- mam od 0 do 1023 Tak samo mam pwm od 0 do 1023 konfiguracja , im mniejsza liczba w rejestrze COMPAREA tym krócej trwa stan niski, korekta za pomocą przycisków + - i zapis do eeprom Adc=pwm to działanie liniowe , na którym auto po...
A więc na przykładzie zapisu: i2c_start(); // i2c start i2c_zapis_int(162); // adres urządzenia (dobrze obliczony) i2c_zapis_int(0); // zapis pod adres 0 i2c_zapis_int(dana); // zapis danej z przedziału 0 - 255 (czyli 1 bit) i2c_stop(); // i2c stop przy odczycie 4 linia wygląda: dana = i2c_odczyt_int();...
jak rejestrować statystyki (Flash ESP, Dodatkowy EEPROM czy karta SD), konfiguracja ESP (SSID, hasło) poprzez usb (uart). Z tym Flash to bym uważał - ograniczona liczba cykli zapisu. Czy nie lepiej to wysyłać na jakiś serwer? Ja mam serwer w domu i sobie chwalę: zapisuję na nim dane z ESP i czujników temperatury BT , dane ze strumienia RTSP kamer,...
Witam. Wielkie dzięki za pomysł. Nie omieszkam go wypróbować w praktyce. A swoją drogą to liczba zmiennych w nawiasie (20) jest u kolegi wynikiem doświadczenia czy dogłębnego przeczytania helpa. Ja starałem się szukać pomysłu w helpie i jakoś nie natrafiłem na natchnienie. Może są jakieś podręczniki które w prosty sposób podają takie właśnie ciekawe...
zapis liczba ujemny zapis liczba ujemna zapis odczyt eeprom
pompowtryski paliwo passat vaillant czujnik ciąg klapa zmywarki
kross elektryczny stabilizator napięcia ujemnego
Fujitsu-Siemens Amilo – schematy, boardview, Service Manual, identyfikacja płyty głównej Zeversolar błąd 35 – Utility Loss w falowniku, diagnostyka i naprawa