Jak jest aplikacja to oprocz ustawienia predkosci kwarcu i skokiem do programu glownego nic nie robi,. Dosyć odważna teza... Całkowicie błędna niestety. Bootloader przed skokiem do aplikacji powinien wyłączyć WSZYSTKO co włączył/skonfigurował, Ty natomiast nie wyłączasz niczego: - RCC i PLL, - przycisk, - SysTick. Funkcja konfigurująca SysTick włącza...
500 bajtów - to zdecydowanie za dużo. Przemyśl ten algorytm. Przecież te dane nie zmieniają się wszytskie równie często i niespodziewanie. Ja się nie zmieniają to wystarczy użyć odpowiedniej funkcji eeprom_update_block() . Albo zastosować nowość od Microchipa, czyli EEMEM :D Ciekawy wynalazek, choć chwilowo mają małe pojemności. EERAM. Równie dobrze...
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...
RTFM, pdf nt. ATMega32, strona 19: Bit 3 – EERIE: EEPROM Ready Interrupt Enable Writing EERIE to one enables the EEPROM Ready Interrupt if the I bit in SREG is set. Writing EERIE to zero disables the interrupt. The EEPROM Ready interrupt generates a constant interrupt when EEWE is cleared. Gdyby się nie dało zrobić jak pisałem tobym Ci głowy głupotami...
pueb wrote: Czy mogę zastąpić tą oryginalną kostke 4c02a5 atmelem 24c02? Spróbuj, inaczej się nie przekonasz :wink:
Odczyt EEPROM trwa tyle co odczyt IO. Nie wnosi żadnych opóźnień. Zapis - jest zależny od MCU, dokłądne czasy znajdziesz w jego nocie - zwykle to 2-5 ms. Podczas zapisu procesor może wykonywać inne instrukcje, a nawet je wykonuje. Tylko, żeby z tego skorzystać należy dokonać zapisu z wykorzystaniem przerwań - po zaposaniu komórki wywoływane jest przerwanie...
To jest do odczytu sterowników i pamięci flash, po OBD2.
z funkami różnie jest ...spróbuj najpierw wyczyści kartę a potem zaprogramować...z wersjami funprog też jest róznie...miałem podobny przypadek....ale znalazłem starą wersję funprom i jest ok... .. a jakim programatorem programujesz zieloną kartę?
warto tracic czas na próby Oj warto warto.jest to mozliwe jak najbardziej,robisz kolna 1:1 i muzyka gra hehe. Poufne info na PW
Prawie na pewno używałem PonyProga juz dwadzieścia lat temu :D Mój komp pisze, że ostatni raz ściągałem to oprogramowanie dziesięc lat temu. Kiedy zaczynałem z układami programowanymi używałem do wszystkiego czyli radii, liczników, kart seca itd :D Coś tam o nim wiem i nawet dalej działający leży w szufladzie. W komputerze stacjonarnym na porcie COM...
TL866 radzi sobie z 29F400. Koszt <40$ wiadomo gdzie.
Mam wrażenie że przy obecnie wybranym algorytmie nie da się przyspieszyć. Gdyby dane o adresie zapisywane były w ciągu z reszta to ujdzie i nie trzeba czekać ale tak to niestety: 1. ładujesz adres początku 2. wysyłasz dane po koleji 3. czekasz te 10ms 4. zapiszujesz pod 5000 zmienną adresu 5. czekasz znowu 10ms I tak powinien wyglądać fragment zapisywania....
Zgaduję, że zapisujesz pierwszą komórkę w pamięci EEPROM i tam są błędy? Jeżeli tak, to nic nowego. Nie używa się pierwszej komórki, ponieważ jakikolwiek błąd zasilania, zapisu, kontrolera (timing) powoduje, że automatycznie jest zerowany rejestr adresowy i zapis jest prowadzony do komórki z adresu 0x00. Zacznij zapisy od komórki 0x01 i powinno być...
Program się zawiesi bo na czas zapisu program jest zatrzymywany w pętli oczekującej na zakończenie zapisu (tak robi BASCOM a domyślam się że mówisz o BASCOMowej funkcji zapisującej a nie jakiejś własnej). Kolejne przerwania od Timera będą wywoływane tuż po poprzednim a więc program główny będzie praktycznie stał w miejscu. O zajeżdżaniu pamięci EEPROM...
Jakiś użytkownik też miał z tym kiedyś problem, rozwiązał to w taki sposób: Pinb.0 = 0 ' pin RW Waitms 100 Initlcd Nie sądzę, że jest to potrzebne, gdy pin został skonfigurowany w config lcdpin . Co z tą częstotliwością? W symulatorze raczej jest podany czas wykonywania kodu (sprawdź bez $sim ). Nie podałeś, jaki masz kod, ile się wykonuje na mikrokontrolerze,...
Może za szybko zapiszujesz albo niepełny ten zapis? ;ldi r18,128 clr r16 cli ;eeprom_zapis: ;out eear,r16 ;adres w eeprom ;out eedr,r16 ;zmienna w eeprom ;sbi eecr,2 ;ustawienie EEMWE ;sbi eecr,1 ;impuls EEWE ;test: sbic eecr,1 rjmp test ;inc r16 ;cpse r16,r18 rjmp eeprom_zapis sei ;sprawdz czy adres rowny Jak widać służyło do zapisania kolejno...
To "odnajdowanie" adresu wiąże się też bezpośrednio z równomiernym zapisem komórek EEPROM. Ponadto jest jest zaimplementowana kontrola limitu zapisów. Może była superowa w 2012 roku Arduino z AVR to też już artefakt, ale możesz oczywiście napisać własną bibliotekę. Ostatnie zmiany w bibliotece EEPROMEx pochodzą sprzed 2 lat. Dodano po 3 Jest jeszcze...
Przy zapisie do EEPROMU w Bascomie nie musisz wyłączać przerwań. Funkcja WRITEEEPROM robi to sama, ale READEEPROM już nie wyłącza przerwań :)
Pokazać plik "eeprom.h", to chyba oczywista oczywistość! W jakim celu? Po pierwsze ten plik jest powszechnie dostępny Jaką wersję ma autor postu? Będę zgadywał, no próbuję ale szklana kula nie działa. Powszechnie dostępne są też moje biblioteki, "Radzia", z ATNELA, itp itd i co mam zgadywać? Mam znać je wszystkie? PS Były błędy w bibliotekach AVR-GCC...
Trzeba koledze uswiadomić (...) Nie jestem przekonany do takiego podejścia, rzeczowy kolega powinien to wiedzieć skoro używa I2C. Obsługa I2C jest bardzo dokładnie opisana w dokumentacji Philipsa. Pozdrawiam, GSM
Skoro program utyka w jakimś miejscu to znaczy że czekasz w pollingu na stan, który się nie pojawia. Po pierwsze dodałbym time out, który przerwie pętlę oczekiwania zanim układ zostanie zresetowany przez watchdog. Dodatkowo w przypadku wystąpienia takiego timeoutu trzeba by obsłużyć jakoś błąd magistrali: http://obrazki.elektroda.pl/2162467700_1...
Pomóżcie proszę zamienić 2 fragmenty programu w Bascom'ie na wersję w Ascii. Ten program w Bascom jest na pewno w ASCII. Jeśli ktoś wie jak to zrobić, to uprzejmie proszę o informację na pocztę: tadeko(_at_)poczta.onet.pl To jest publiczne forum i jeżeli ktoś będzie chciał odpowiedzieć (co prawda nie wiadomo o co pytasz) to zrobi to tu aby inni w przyszłości...
willem, tl866 i pewnie jeszcze kilkanaście innych programatorów od takich do samodzielnego montażu po profesjonalne za kilka tysięcy złotych.
Składnia: rezultat = LOW( zmienna ) Przeznaczenie: Zwraca młodszą cześć (bajt MSB) podanej zmiennej. gdzie: rezultatzmienna do której zapisana będzie młodszy bajt zmiennej, zmiennazmienna której młodsza część ma być określona.
Przy zapisie eepromu należy brać pod uwagę że przez 1-5 ms trwa zapis i nic wtedy nie odczytasz/zapiszesz. A tutaj gotowiec: https://github.com/jnk0le/AVR-I2C-libs/b...
a spróbuj, czy puści tak: EECR=(1<<EEMWE); EECR=((1<<EEMWE)|(... a tak na marginesie, czemu 2x inkrementujesz WriteAddress ??
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. Gotowiec dla leniuchów: [syntax=c]static EEMEM uint8_t emode; //rezerwujemy bajt w eeprom ... uint8_t mode=0; //zmienna przechowująca kopię danej z eeprom //odczyt...
Pewnie dlatego, że po 16-bitowym adresie nie wysłałeś do pamięci ani jednego bajta danej do zapisu.
Po odczycie pamięci EEPROM i zmianie ustawień zapisz je na dysku (File>Save As), po tym opcja Program powinna być dostępna. Sprawdzałem u siebie taką sekwencję: 1. Scan device Efekt w oknie na dole: Number Of Blank Devices = 0 Number Of Programmed Devices = 1 2. Tools > Read and Parse Odczytał ustawienia FT232R 3. File > Save As... Zapisałem na dysku...
eeprom.h eeprom_write_block (const void *__src, void *__dst, size_t __n) Twoja wersja eeprom_write_block( &eeprom_val, &val1, 6 ); // zapis eeprom Widzisz różnicę :D
Witam. Pierwsza sprawa rezerwujesz uint8_t a odczytujesz float. Po każdym naciśnięciu przycisku musisz wykona zapis do eeprom-u którego Ty nie robisz.
To w tym złego, że ilość zapisów do EEPROM jest ograniczona. Zapis do RAM jest problematyczny, bo co jak wysiądzie zasilanie? Trzeba robić sygnalizację i podtrzymanie na czas zapisu danych do EEPROM i specjalną obsługę tej sytuacji w programie. Dlatego albo zastosuj programowe rozwiązanie - wear leveling, albo wsadź pamięć FRAM.
Watchdog nie musi generować sygnału RESET. W AVRach sam wybierasz czy zgłoszenie od Watchdoga ma zresetować procka czy też tylko wywołać przerwanie od niego, bądź jedno i drugie w kolejności - przerwanie a przy wyjściu z niego reset. http://obrazki.elektroda.pl/1548346700_1...
Raczej tak. [syntax=c]uint8_t eeSEast EEMEM = 00; uint8_t s; eeprom_write_byte(&eeSEast, s); // zapis do eepromu s = eeprom_read_byte(&eeSEast); // odczyt z eepromu [/syntax]
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,...
Nie jestem pewny o co tak naprawdę koledze chodzi. Czy to jakoś pomoże? Dim tekst as eram string*30 Najprostszy sposób na zapis stringa w pamieci eeprom. pozdrawiam Tomek
A pisałeś do producenta lub dystrybutora w Polsce?
Opcja Preserve EEPROM nie działa jeżeli ustawione jest zabezpieczenie Flasha przed odczytem, gdyż działa na zasadzie najpierw odczytu EEPROM skasowania uP i ponownego zapisu EEPROM. Nie miałem czasu aby przetestować na fizycznym układzie. 1. Czy procesor jest zabezpieczony przed odczytem? 2. Jaka jest przyczyna że chcesz w ten sposób programować uP?...
a jeszcze moge dodac jak to zapisac np do komórki pamieci nr100 w eepromie a potem to odczytac z tejze komórki czyli w skrócie adresowanie ? z góry wielkie dzieki No co Ty , żartujesz :?: eeprom int *eeptr; void main(void) { char a; a=0x11; eeptr=100; *eeptr=0x33; a=*eeptr; for(;;); } Piotrek
bytes to EEPROM address __dst from __src. Zmień na [syntax=c_loadrunner] uint8_t temp[6], data[6]; [/syntax] i powinno działać. Niepotrzebne są opóźnienia, w tych funkcjach jest już sprawdzane czy EEPROM jest gotowy.
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...
A może rozważ użycie pamięci F-RAM (gwarantowane cykle odczytu i zapisu rzędu 10 ^ 9 ) http://www.tme.eu/pl/katalog/pamieci-fra...
Raczej trzeba wymienić na AT24C02A
Dlaczego pokazuje -1 na wyświetlaczu a nie np 255 jak jest dla zmiennej typu Byte. Bo Integer to zmienna ze znakiem, FFFF to właśnie -1. Byte jest zmienną bez znaku (zawsze dodatnią). Dwubajtowa zmienna bez znaku to w Baskomie "Word". Na wyświetlaczu po resecie będzie wówczas 65535. 2. Czy taki zapis eeprom będzie poprawny przy pierwszym sprawdzeniu...
1. Poza tym zapis EEPROM w przerwaniu to też niedobry pomysł - to kilka ms/zapis. Od tego EEPROM generuje swoje przerwania, żeby zapisy buforować i zapisywać do EEPROM niezależnie. 2. Poza tym mieszanie ISR i SIGNAL czyli starej i nowej obsługi przerwań tez nie jest zalecane. 3. Wysyłanie znaku przez USART w obsłudze przerwania też może nie być dobrym...
Po zapisaniu eeprom pamięć flash się kasuje ? Pamięć flash jest chroniony natomiast eeprom nie. https://obrazki.elektroda.pl/1907994900_...
Naprawdę nie prościej zmienić zapis w eeprom licznika?
Nie ma bufora. Operacja (od wywołania funkcji do jej zakończenia) trwa tyle, ile potrzeba na zapis do EEPROMu całego bloku danych podanych w argumencie. Dla przykładu, wywołujesz zapis: [syntax=c]#include <EEPROM.h> void setup() { uint8_t var[5] = {1,2,3,4,5}; EEPROM.put(0, var); } void loop() {}[/syntax] Wtedy kompilator tworzy funkcję z szablonu...
http://www.elektroda.pl/rtvforum/viewtop... Licznik do 2006r ogarniesz kabelkiem z alledrogo. (odczyt modyfikacja i zapis eeprom) Pasuje każdy. W poniedziałek montowałem fis i tempomat w 3 godzinkach się uwinąłem ;)
Ustawiłem wielkość EEPROM na 512 i zwiększyłem wykorzystanie do 380. Pokaż, jak wygląda ta inicjalizacja emulowanego EEPROM w setup(), w szczególności to "zwiększenie".
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...
Niestety datasheet Attiny13 i Attiny13A mówią tylko o możliwości zablokowania zapisu, zapisu i odczytu obu pamięci (Flash i EEPROM) na raz tymi samymi fusebitami, co oznacza, że nie będziesz w stanie zablokować Flasha i mieć możliwość zapisu EEPROMU. Jedyna opcja to programowy zapis odpowiednich wartości, choć może to być problematyczne przy ograniczeniu...
Ad1 AT24C02D
Te dane to zawsze będą stringi? Jeśli tak to przerób:[syntax=c]eeprom_write_block(wsk... eem_buf, strlen(wsk));[/syntax]na: [syntax=c]eeprom_write_block(wsk, eem_buf, strlen(wsk)+1);[/syntax]Dzięki temu zapisywany będzie też znak końca stringu. Pokaż jak odczytujesz dane z eepromu.
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 ? W takim przypadku, po każdym resecie zmienna będzie nadpisywać nową ( taką samą ) zawartością. Jeżeli przewidujesz 1 reset co kilka dni,...
Być może, że twoje opóźnienie wcale nie jest takie jak myślisz (skoro 3ms to typowy czas to 5ms spokojnie powinno wystarczyć). Zauważ, że jeśli zapisujesz pierwszą stronę to kolejną możesz zapisać jeśli wysłanie control byte zwróci ACK jeśli nie to pamięć jest zajęta i należy ponownie wysłać start i control byte. Co jeśli najpierw zapiszesz druga stronę...
Jak wszystkie nóżki zajęte to tylko wewnętrzny EEPROM. Single zajmuje 4bajty, trwałość EEPROM wynosi 100000 zapisów. EEPROM ma 512 bajtów. Wychodzi mi że EEPROM 148 dni wytrzyma. Oczywiście jeśli każdy kolejny zapis będzie w kolejnej grupie komórek. A z tą zajętością nóżek... Jak programujesz w układzie (ISP) to SPI wykorzystuje te same nóżki. Wystarczy...
Może powodem nie jest błędne użycie funkcji a natomiast za krótki czas podtrzymania zasilania po jego zaniku. Proponuje abyś napisał krótki testowy program w którym pierw coś zapiszesz do EEPROM a następnie to odczytasz. Czy przypadkiem czas zapisu do Pamięci EEPROM nie wynosi kilku ms?
W fusebitach masz fusebit EESAVE. Zapoznaj się jak działa.
Wrzuć cały kod. Dodano po 1 U Ciebie błąd jest w tym, że po odczycie poprawnego zapisu z EEPROM nie inicjujesz rejestrów PORTD i DDRD, tylko od razu przechodzisz do testowania wejść, przez co porty są nie zainicjowane dopóki nie naciśniesz jakiegoś przycisku. Na dodatek nie odświeżałeś wartości r19 po zapisie nowej wartości do EEPROM. W układzie należy...
To zastosuj XMEGA, bo: 1. Działa od 1,8V, a przy 3,3V masz 32 MHz, 2. EEPROM można zapisywać stronami, zapis strony 32 bajtowej trwa tyle samo co zapis 1 komórki. 3. To też AVR, więc generalna koncepcja jest podobna. Aczkolwiek przy 3,3V i zwykłej ATMega też zapewne się uda, pamiętaj tylko, żeby po detekcji zaniku zasilania wyłączyć wszystko, przestawić...
W eeprom_write_block() masz odwrotną kolejność wskaźników. Najpierw musi być źródło, później cel.
Podeslij zapis eeprom. W twoim pliku 512kb to zapis flash
[syntax=c] aaa=EEPROM_odczyt(0); itoa(aaa, text, 10); [/syntax] aaa wewnątrz funkcji EEPROM_odczyt(); to nie to samo aaa co w int main(void); - to dwie różne zmienne.
http://lmgtfy.com/?q=arm+eeprom+emulatio...
Czy masz dostęp do programatora lub interfejsu, który pozwala na odczyt/zapis pamięci EEPROM w tym radiu? tak Rozumiem, że masz czym odczytać wsad pamięci 24c64. Wstaw odczytany plik ''.bin'' jako załącznik, to podamy oryginalny kod.
Nie ma tam rozwiązania opartego o zapis w pamięci EEPROM typu 24 lub 93?
Tak wysyłam, zgadza się.
Czas zapisu Eepromu wynosi typowo 2,5-4ms. W tym czasie nie powinny byc dokonywane zadne inne operacje na pamieci Eeprom. Informacja o zakonczonym zapisie znajduje sie w rejestrze Eecr (bit 1). Wyzerowanie tego bitu = koniec zapisu Po instrukcji writeeeprom mozesz dac polecenie: bitwait Eecr.1, reset wtedy program bedzie zatrzymywany jedynie na czas...
A nie prościej wykorzystać przerwania EEPROM? Inicjować je flagą potrzeby zapisu struktury? A w przerwaniu "lecieć" po kolejnych elementach struktury? robiw Można tak, albo dodać kopiowanie struktury do bufora tymczasowego z którego odbędzie się zapis. Ma to sens jeśli w czasie zapisu pola struktóry moga się zmienić - dojdzie wtedy do uszkodzenia danych....
Dzięki - może się przydać!
czyli taj tutaj muszę wpisać IP odczytane z pliku ETH.config(myIP, myGW, mySN, myDNS); coś takiego ETH.config(conf.values[0].c_... jak będzie wyglądało String params = "[" "{"...
24c01 kod jawny w zapisie
ad 1. Zapewne żaden. ad 2. Dokładnie. Podczas odczytu zwracana jest zawartość EEPROM (skopiowana do bufora lub ostatnio zapisana), podczas zapisu, zapis odbywa się do bufora. Pomyśl o tym tak, że masz np. 32 bajtowy bufor, do którego możesz zapisywać. Po uzupełnieniu w nim danych, możesz je skopiować na raz do EEPROM, na dowolną stronę, której adres...
Według notki [url=http://www.giantec-semi.com/upload/... "After POR, EEPROM is under hardware write protection. So WEN instruction must be executed before send any WRITE type of instructions to device. Once receive WEN instruction, device can be written or erased." Pamięć przed zapisem musi być odblokowana, jak zatem wygląda ta procedura?...
Zmiana OSCCAL na maksa może spowodować problemy przy zapisie do EEPROM i FLASH. Możesz trochę zrobić wstawek asemblerowych w newralgicznych miejscach programu.
SaveToEeprom(1, current, voltage); zapisuje zmienną "current" w komórkach 1 i 2 i zmienną "voltage" w komórkach 3 i 4 EEPROMu. Następnie SaveToEeprom(2, current, temperature); zapisuje zmienną "current" w komórkach 2 i 3 i zmienną "temperature" w komórkach 3 i 4 EEPROMu. itd. Nadpisujesz dane (komórka 3), więc odczytujesz później "śmieci", czyli wartości,...
Pytanie jest następujące, czy da się te kości skasować/zaprogramować programatorem TL866II Plus? Kości są zgodne z EPROMami 27C160 i przy pomocy tego adaptera: https://github.com/mafe72/27c160-tl866-a... bez problemu mogę zczytać ich zawartość, jednak przy próbie zapisu - dostaję błąd. Wina używanych kości - czy po prostu się tym nie da? Jaki programator...
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"...
W datasheet jest zapisana przykładowa procedura zapisu i odczytu pamięci EEPROM. O ile nie zaznaczyłeś odpowiedniego bitu w fusebits to pamięć EEPROM jest standardowo kasowana przy programowaniu kości.
Rozumiem a do odczytu wystarczy j=twiread(adres);? Też trzeba sprawdzić ACK, bo układu może nie być (np adres jest zły), kabelek się urwał, itp. Po warunku staru też należy sprawdzic status bo może byc problem z rezystorami podciągającymi. Jest tez inny powód. Np komunikujesz się po IIC i w czasie wysyłania np drugiego impulsu SCK następuje reset procesora....
Zapis do eeprom musi się odbywać inaczej. [syntax=c]void eeprom_write_block(const void *źródło, void *adres_w_EEPROM, size_t ilość);[/syntax]
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(..)...
...Nawiązując do sugestii kolegi wrzuciłem linijki do programiku i na nieszczęście nawet wyświetlacz lcd przestał wyświetlać, a tylko mruga pierwsza linijka. Nie no , jasnowidzem to nie jestem :D Poza tym , to tylko "pomysł na ..." , a nie gotowiec.Pokaż(załącznik) cały kod , to może cosik się zaradzi :D Piotrek
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...
zrobilem sobie do domu alarm wszystko dziala jak powinno ale chce sie nim troche pobawic i zrobic monitoring pomieszczen. Chce monitorowac aktywnosc w poszczegolnych pomieszczeniach oraz liczbe otwarcia drzwi. Wyniki maja zostac przeslane do Serwera ktory jest podpiety do netu a on zrobi z tego jakies statystyki. Tylko teraz pytanie czy lepiej zapisywac...
Poza tym funkcje Readeeprom i Writeeeprom są chyba niezbędne? Wypróbuj propozycje zmian i sam się przekonasz.
Jest to wyprowadzenie niezbędne do wysokonapięciowego ZAPISU / KASOWANIA pamięci EEPROM, wbudowanej w ten procesor.
Jakoś dotąd nie miałem problemu z HC11 , a tu nagle ... Odczytuje tylko część eeproma i zawiesza się (oczywiście po pierwszej próbie odczytu eeprom skasowany :sm1: ). Przy zapisie podobnie, ale nic nie zapisuje. Próbowałem kwarca zmienic na 8MHz i próbować czytać jako inne HC11 ale też qpa. Podobno to taki dziwny HC z 256 eepromem i standartowe softy...
Witam. Oba układy posiadają te same piny (oznaczenia) ale są różnych producentów. Takie znalazłem w opisie. 24C02 - Microchip X24C02 - Xicor Oba posiadają blokadę zapisu pin nr7. Stan wysoki blokada zapisu. Stan niski (masa) zezwolenie na zapis.
Bo pamięć eprom jest jednokrotnego zapisu. EEprom można skasować i zapisać ponownie, ale nie stosuje się w pilotach i transponderach. W niektórych da się wymienić eproma i użyć pilota ponownie.
Zle rozumujesz. Po przekroczeniu adresu 0x1FFF adres sie zawija i jak zapisujesz pod kolejny adres 0x2000 to w rzeczywistosci zapis odbywa sie do komorki o adresie 0, 0x2001->1 itd. Czyli nadpisujesz dane z poczatku pamieci. Chyba wszystkie pamieci sie tak zachowuja, bo jest to wlasnie jedna z technik autodetekcji dostepnej ilosci pamieci.
Wykorzystać wbudowaną pamięć EEPROM. Zapis po zmianie, odczyt przed pętlą główną programu.
Funkcja odczytuje bajt z EEPROM, porównuje z bajtem do zapisania i jeśli są różne to zapisuje, jeśli takie same, to przechodzi dalej nie robiąc nic. Ponieważ w XMEGA dostęp do EEPROM jest znacznie bardziej zaawansowany (m.in. możliwość jednoczesnego zapisu całej strony EEPROM i odczytu EEPROM przez region zmapowany w przestrzeń adresową MCU, warto się...
Witam wszystkich! Z GORY PROSZE O POMOC! Przerobilem sobie kabelek na serwisowy i dziala..no wlasnie w tym problem. Odpailem Siemens EEPROM tool i polaczylem go z telefonem.Wyswietlil sie na nim SERVICE MODE .Zczytalem eeprom bloks i nichcacy dalem zapisz.Wszystko poszlo bez problemu ale telefonu nie moge juz uruchomic:( Wyciagalem baterie i nic..tylko...
Skończyło się na następującym rozwiązaniu: http://obrazki.elektroda.net/32_12785728... Na zasilaniu głównym jest kondensator 100uF. Wcześniej wydawało mi się, że te piny wiążą się z wykorzystywanym przeze mnie PWMem ale myliłem się- dzięki TMF za sugestię!. Musiałem "tylko" przepiąć cały port sterujący LCD, narysować nową płytkę i już mogłem podłączyć...
Witam, Problem w tym, że pomiar ma być dokonany w terenie na poligonie, a odczyt w domku - niezależnie od pogody, temperatury, napięcia na baterii, wyniku muszą dać się odczytać - dlatego zależy mi na eepromie Pozdrawiam Szymon
Odczyt nie ma wpływu na żywotność EEPROM, zaś zapis - wg datasheet Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
Przy 40kB zastanów się jednak nad zastosowaniem zewnętrznej pamięci np. flash SPI typu M25Qxx, W25Qxx, AT45DBxx. Strony w STM32F1 są dość małe (2kB) do tego w emulacji używasz 2 stron na 2kB danych. Kasowanie takiej ilości też trwa kilka sekund. Sprawa naprawdę do przemyślenia.
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,...
błąd zapisu eeprom eeprom blokada zapisu łączenie zapisu
moduł lusterka elektryczne 93c56 eeprom uszkodzenia przedwzmacniacza
gokart elektryczny gokart elektryczny
Dekoder DVB-T nie zapisuje kanałów - przyczyny i rozwiązania Pompa wody do kotła Junkers Cerapur Midi ZWB24-1Ar