A kto to moze wiedzieć. Kupić atmege i sprawdzić.
OK już sprawa jasna, zakładałem że kasowanie tak samo zmniejsza nam żywotność jak zapis.
Witam, ilość odczytów nie ma znaczenia, mam układ gdzie 8 komórek 24C02 jest odczytywane cyklicznie co kilka milisekund w termometrze od ponad 7 lat i jeszcze nic się nie zmieniło. Nigdy nie spotkałem się z informacją o ilości cykli odczytu a jedynie zapisu do EEprom.
Symulator w Atmel Studio 6.0. Twoje funkcje u mnie działają poprawnie, tzn dane z jednej są kopiowane do drugiej. To kopiowanie jest "bezmyślne" w sensie że, kopiuje obszar pamieci bajt po bajcie, bez znaczenia jest typ zmiennej. Może problem tkwi w dobieraniu się do pól struktury?
Jak najbardziej write_block zapisze poprawnie - kluszem jest parametr size. Jeśli pobierzesz &id_czujnika i sizeof(id_czujnika) to będzie ok.
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
BOD to tylko terapia doraźna. Popraw przede wszystkim zasilanie, musisz mieć nieźle pokaszanione, skoro napięcie tak pływa, że miałeś 25% błędów. Popraw też program. Dobrą praktyką jest ustawienie EADR pomiędzy zapisami/odczytami na nieużywaną komórkę pamięci EEPROM. Dzięki temu przypadkowy zapis zostanie wykonany w nieużywanym obszarze.
A jak jest zadeklarowana zmienna? Jako uint16_t?
Dzięki. Jeszcze jedno pytanko. Czy taki zapis jest prawidłowy: [syntax=c]mem_year=eeprom_read_byte((uns... char*)(actual*3+2));[/syntax] actual to zmienna typu int
Datashee atmega8 ...write/erase cycles: 10.000Flash/100.000 EEPROM.. czyli 5.000 cykli gwarantowane
Witam. Atmega może padać , to jest możliwe szczególnie EEprom , duża ilość zapisów do w/w. Czy da się sklonować istniejącą , wszystko zależy od LockBitów ustawionych w Atmega. Jeżeli została zabezpieczona lockBit to odczyt się nie uda, dostaniemy losowe wartości , zupełnie bezużyteczne. Pozdrawiam.
A co to za pomysł żeby co minutę zapisywać do EEPROM?
Witam Chciałbym przez rs232 zapisywać zmienne z pliku txt do zewnętrznej pamięci eeprom np. 24Cxx z których będzie korzystał mikrokontroler atmega128. Od czego zacząć? Czy to będzie bardziej rozwiązanie polegające na programie w mikrokontrolerze zasysającym dane z txt i wczytującym je do eeproma czy zrezygnować z drogi mikrokontrolera i programować...
EEPROM z wear leveling też może być rozwiązaniem, o ile oczywiście czasy zapisu do tej pamięci są akceptowalne i masz duży nadmiar EEPROMu.
Nie wiem jak koledzy ocenią mój pomysł natomiast kiedyś zrobiłem to tak że w obwodzie zasilania 5V wstawilem dość duży kondensator 1000 uF, Magazynował on na tyle dużo energii że nawet po zaniku zasilania starczał na kilka sekund. Dorobiłem układ sprawdzający poziom napięcia na transoptorze podłączonym pod napięcie niestabilizowane. Zanik napięcia generowal...
(at)sp5gbw Wydaje mi się, że pokazany kod nie realizuje tego co opisujesz. Tak jak pisałem, prześledź jego działanie w symulatorze. Co do detekcji zaniku zasilania - zobacz darmowe przykłady do moich książek ze stopki - masz tam pokazane jak zrealizować detekcję zaniku zasilania i zapisu do EEPROM.
Możesz zastosować procka z literką V które pracują poprawnie przy napięciach 1,8V skoro pracują to i zapisują EEPROM-a.
Ciężko ci to zrozumieć że od samego początku masz źle? void konwert2(char tekst char tekst do char pomoc ?
Witam walcze od kilku godzin z takim problemem przy zaniku zasilania kondensator podtrzymuje MCU i umożliwia mu zapis do eeprom zanik wykryty wewnętrznym komparatorem, no i układ działa ale jak szybko wyłączę i włącze zasilanie a jak zrobie to wolno to nie działa kod trochę zmodyfikowałem min wektor przerwania i dodałem funkcje testujące na lcd. Używam...
A czy przy zapisie do eeprom nie brakuje przypadkiem I2CStart??? Marek
static __ATTR_PURE__ __inline__ uint8_t eeprom_read_byte (const uint8_t * __p) Ty natomiast chcesz czytać / zapisywać char. Unsigned char (uint8_t) a char to dwa różne typy zmiennych dla kompilatora. Proponuję nauczyć się używania zmiennych z nagłówka <stdint.h> czyli [u]int{8|16|32|64}_t - w twoim przypadku uint8_t. 4\/3!!
I co Dawid udało się coś odczytać z eepromu, bo ja próbuję identycznym sposobem i zapisać się da, ale odczyt to bzdury. I nie jest ważne, czy zmienna "temp_dol_k1" jest jako zwykła, czy EEMEM. Coś jest źle. Próbowałem, też wg. kodu z datasheeta i też nic. Pozdrawiam.
Też miałem o tym napisać ale dałem sobie spokój bo to nie na temat. U mnie często wychodzi około 1M cykli zapisu. Dodano po 1 Możesz zapisywać dane w kodzie Gray'a. Często kilkakrotnie zwiększa to maksymalną ilość zapisów bo każdy bit w bajcie jest zmieniany mniej więcej tak samo często. Ale oczywiście zależy to też jeszcze od charakteru zmian zapisywanych...
Spróbuj z Instrukcją CONFIG I2CDELAY
DZIALA!!! Moj program a wlasciwie zapozyczona procedura z rklibavr zle generowala sygnal STOP dla i2c. Bylo tak: void I2C_stop(void) { I2C_SDA_WR(); // SDA na zapis I2C_SCL_H(); delay10us(); I2C_SDA_H(); delay10us(); } Zmienilem na tak: void I2C_stop(void) { I2C_SCL_L();...
Witam! Zacząłem pisać program który odczytał by mi z układu 24c02 dane i zapisał je do pliku. Eprom się odczytuje i zapisuje mi do pliku tylko ,że każdy bajt w oddzielnej linii a nie w jednej. Oto kawałek kodu: Cls Lcd "odczyt epromu" K = 0 Buf2 = "" 'For Addressw = 162 'S=Dir( "*.txt") Open "i2c.txt" For Append As #3 ' Addressw = 172 For I = 0 To 255...
NIE wolno robić czegoś takiego żeby zmienna co chwile była zapisywana do EEPROM-u dlatego że on ma określoną ilość zapisów minimum 100.000 / + . Ja bym si polecił jakiś SRam na i2C albo SPI z podtrzymaniem bateryjnym może być nawet zegar RTC PCF8583 . Co do karty i komunikacji z PC tu [url=http://www.dharmanitech.com/2009/01...
[syntax=c] (...) static EEMEM uint8_t histereza = 3; //zmienna do pamieci EEPROM int main(void) { (...) uint8_t histereza = eeprom_read_byte(&histereza); (...) [/syntax] Zgadnij dlaczego nie działa ? Podpowiedź - nazwy.
Za długie pętle lub za krótkie tablice zmiennych.
nie mam włączonej żadnej optymalizacji (-00) REG->EECR |= 1<<EEMWE; REG->EECR |= 1<<EEWE; żeby zapis się wywołal to druga zmiana bitu musi odbyć się w ciągu 4 cykli zegarowych a tymczasem ten kod skompilowany bez optymalizacji daje w gcc coś takiego: [syntax=asm] 162:ac e3 ldir26, 0x3C; 60 164:b0 e0 ldir27, 0x00; 0 166:ec e3 ldir30,...
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...
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...
Czyli po kropce podajesz nr odczytywanego bitu, a możesz wyjaśnić dokładniej jak z zapisem jednego bitu?
Na pokładzie atmega 32u4, eeprom 24c256. Czy w takiej konfiguracji istnieje możliwość zapisu oprogramowania atmegi z zewnętrznego eeproma ? Np. projekt [url=http://alexforencich.com/wiki/en/xb...
ATmega + eeprom wystarcza w zupelnosci. Zreszta jak dobrze poszukasz to znajdziesz gotowe procedury obslugi pamieci i wszelakich czujnikow napisane na ATmege. To samo tyczy sie komunikacji z PC. Praktycznie do wszystkiego znajdziesz gotowy fragment kodu, jedyne co musisz zrobic to poskladac to w calosc :-)
Witam Z listingu wynika, że dane są zapisywane do wewnętrznego eepromu procesora. Jest taka możliwość, tylko trzeba przerobić program. Należy dodać obsługę I2C i przepisać podprogramy do zapisu, odczytu i kasowania pamięci. Pozdrawiam
W ksiażce "ATmega w praktyce" Baranowskiego jest napisane, że EEPROM jest odporna wg gwarancji producenta na 100000 zapisów... Natomiast w dokumentacji od ATmega8 nie znalazłem( być może przeoczyłem ) taką informację.
Pytanie Autora dotyczyło zapisu/odczytu pozycji do/z eepromu..... Funkcje przycisków i algorytm działania urządzenia nie były poruszane w tym temacie, bo prawdopodobnie Autor wie jak to rozwiązać, żeby urządzenie było funkcjonalne. Dlatego też moja odpowiedź dotyczyła wyłącznie zagadnień związanych z tematem zapytania.
Dziekuje za pomoc. Zapis powiódł sie bez problemowo. Makra to przydatna sprawa.
Nie mylisz się a dokładnie powinno tak to przebiegać 1wreset 1wwrite &HCC 'reset magistrali 1wwrite &H4E 'zapis do scratchpad 'zapisuje trzy bajty do scratchpad zawsze obowiązkowo i nie można zapisu przerwać resetem 1wwrite &H00 '1bajt 1wwrite &H00 '2bajt 1wwrite &H7F '3 bajt Wait 1 1wreset ' reset 1wwrite &HCC 'skip ROM 1wwrite &H48 ' zapis do EEPROM...
Dzięki, ale niestety nie działa :(. Przy kompilacji wysypuje cały worek błędów. A co do zapisu EEPROM to faktycznie zapomniałem o jej trwałości. Przerobiłem tak, że zapis jest na żądanie (przycisk). Nadal wpisy są zerowe.
Żabek to nie wstawiaj komentarzy. Utwórz kopię pliku delay.h a potem napisz na szybkiego swoją wersję z zwartością TYLKO taką i nic więcej: void _delay_ms(double __ms) {} void _delay_us(double __us) {} I po tym -O0 powinno śmigać. Jest to niezbyt ładne, ale skuteczne i trwa moment oraz nie wymaga szerszej wiedzy....
Może nie traci - odczytaj EEPROM i porównaj. Prawdopodobnie przekłamanie dotyczy jednego bajtu EEPROM, tego na który aktualnie wskazuje rejestr adresowy EEPROM. Stąd też, ustaw wartość tego rejestru na nieużywaną komórkę pamięci EEPROM zawsze kiedy się do tej pamięci nie odwołujesz, możesz np. na 0 i pominąć tą komórkę pamięci przy zapisie (zapisywać...
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...
czas zapisu do epromu wynosi okolo 10ms zmien program zapiseprom czas15m odczyteprom
tak druga ,atmega128 programuje sie ok ,więc wniosek ze moja atmega od początku zakupu była walnieta ,ma zablokowany fuse bit odpowiedzialny za zapis do eeprom :(
Zrobić jedną tablicę jednowymiarową i zapisywać kolejno po sobie po 7 tych zmiennych, następnie odczytywać z "offsetem" tablica(x + y*offset) daje to pseudo 2 wymiarową tablicę. tablica(0 + 0*7) = tablica(0) tablica(1 + 0*7) = tablica(1) tablica(2 + 0*7) = tablica(2) .... tablica(0 + 1*7) = tablica(7) tablica(1 + 1*7) = tablica(8) itd....
Tak to da się zrobić. Godziny 5 bitów, minuty 6 bitów, miesiąc 4 bity, dzień 5 bitów, rodzaj x bitów. Razem 20 bitów + x. Kodowanie: Dim temp as long '.... temp = godziny shift temp, left, 5 temp = temp OR minuty shift temp, left, 6 temp = temp OR miesiac Działa jak widać dodajemy przesuwamy o odpowiednią ilość bitów i następną zmienną dodajemy w puste...
Witam. Jak najlepiej zapisać ciąg znaków np "www.elektroda.pl" do pamięci eeprom procesora Atmega 128. Czy jedynym wyjściem jest zapisywanie w pętli kolejnych znaków ze sztywno określonej tablicy, czy też istnieje jakiś łatwiejszy, bardziej optymalny sposób?
Zapis nie musi zajmować dużo czasu, jeśli przed wywołaniem zapisu sprawdzisz, czy żaden inny zapis do EEPROM się nie odbywa. Jeśli nie, to wywołanie _write lub _update dla bajtu trwa chwilę, bo funkcja natychmiast wraca i nie czeka na koniec zapisu. Więc tu blokowanie przerwań będzie bezpieczne. Co innego w przypadku zapisu blokowego, ale przecież nie...
... 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...
W takim wypadku nie potrzebujesz wcale żadnego BootLoadera, tylko chcesz zapisywać dane we Flash'u tak jak w zwykłym EEPROMIE. W sumie to prawda, ale aby móc zapisywać coś do flasha to muszę wykonać instrukcję spm, której wywołanie jest dozwolone tylko z obszaru NRWW (tam, gdzie bootloader). No i tu jest lekarstwo na Twoje bolączki. Jedna jedyna funkcja...
Aby zapisywać i odczytywać zmienne z wbudowanej pamięci EEPROM musisz zadeklarować jakąś zmienną w tej pamięci http://avr.elektroda.eu/node/3 W tej chwili zapisujesz i odczytujesz jakąś przypadkową zmienną w pamięci SRAM
To będziesz musiał się trochę napocić. Po pierwsze jak używasz watchdoga w programie, to musisz w jakiś sposób sprawdzić czy reset aby na pewno służył do upgrade'u. Możesz to zrobić np przez zapis do eepromu jakiejś wartości, odczyt i odczyt jej bootloaderze (pamiętaj żeby bootloader ją resetował). Dobry by był też mechanizm który by pozwolił na zrezygnowanie...
Witam wszystkich Chcę wysyłać i odczytywać obrazki BGF do/z eepromu. Procesor Atmega 32, eeprom at24c32. Wyświetlacz DMF5005N. T6963C. Ewentualnie skorzystałbym z EEpromu atmegi 644p. Czy posiada ktoś sprawdzoną procedurę zapisu i odczytu grafiki.? Próbowałem na przykładzie gotowca z helpa BASCOMA, ale miałem tylko czarne tło. Pozdrawiam i proszę o...
Co do drugiej uwagi wspomniana konstrukcja w funkcji eeprom_write() jest takowa, z mysla o tym, zebym mogl jej uzywac do zapisywania ciagow. Dzieki temu moge napisac eeprom_write(EEPROM1, adres, "tekst do wpisania < 32 liter"); Obawiam się, że to będzie działać prawidłowo tylko wtedy, gdy adres będzie podzielny przez 32. Poza tym,...
Cześć. Nie rozumiem pewnej sprawy, proszę o podpowiedź. Do EEPROM zaszytego w procek (np. Atmega 16) można zapisać 100 000 razy. Oznacza to zapis do konkretnej komórki pamięci, czy w ogóle do EEPROMU danego procka? Co w przypadku znaczenego przekroczenia ilości zapisów - procek przestanie zapisywać czy przestanie działać całkiem (czy EEPROM ma wpływ...
Dziękuję wszystkim za podpowiedzi. Zdecydowałem, że przy takiej liczbie danych najlepiej będzie dorobić pamięć FRAM do układu. Pozdrawiam. Nie ma jak sobie wziąć starego trupa i potem próbować go reanimować:) ATMega32 to historia, weź sobie np. ATMega328 i tam po pierwsze całkowity czas zapisu to już tylko 3,4 ms, w dodatku można go rozdzielić na kasowanie...
Dane zapisują się w pamięci eeprom ale nie mam pojęcia jak to sprawdzić. Zapisują się,… albo też nie! Nie jest to poprawna forma zapisu do EEprom, co jest omówione niżej..... Generalnie wygląda to tak że po uruchomieniu sterownika ustawiam po kolei wszystkie parametry i wszystko działa do momentu wyłączenia zasilania ...... A powinno być w tej kolejności:...
Ta sama sytuacja. Sprawdziłem oba zapisy warunku sprawdzającego stan portu i też to samo.
Zapisy o ktorym piszesz odbywaja sie do pamieci EEPROM, a nie FLASH. FLASH mozna zapisywac tylko z sekcji bootloadera za pomoca secjalnego ciagu instrukcji, no i zapis odbywa sie po stronie. Czyli na raz w zaleznosci od kontrolera zapisujesz 16-64 bajty. EEPROM ma trwalosc 100k zapisow, potem moga sie dziac cuda (zamiast 0 bedziesz na odpowiednim bicie...
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...
Uchędożyłem sobie układzik w którym Atmega zapisuje sobie dwunastobajtowe paczki danych do czterech EEPROMów 24C512. Całość zasadniczo ładnie działa, jednak sporadycznie zdarza się błąd TWI nr 0x38 oznaczający "Arbitration lost in SLA+W or data bytes". Jak zdołałem ustalić, błąd ten występuje w trakcie wysyłania danych do pamięci, mniej więcej w środku...
K_o_n_r_a_d, jeżeli masz trochę czasu to przedstaw mi swój sposób zapisu/odczytu danych do/z EEPROM. Z góry dzięki. Ja to robię tak mniej więcej: Dim pomocnicza As single At 700 Dim X As Eram Single At 100 X=pomocnicza 'zapis do eeprom pomocnicza=X 'odczyt z eeprom
Witam Czy procesor AtMega 328p wyrobi się przy założeniu: Odczyt danych z RS485 Zapis danych na karcie SD Zakładam tak: PD0, PD1 - UART PD3 - przełączanie transmisji RS485 PC4, PC5 - I2C ( TWI ) pod EEPROM + PCF8563 PC0, PC1, PC2, PC3 - linie danych wyświetlacza PB1, PB2 - linie E i RS wyświetlacza PB3 ( OC2A ) - podświetlanie wyświetlacza PD4, PD5,...
Mam takie[syntax=c]// Set TWI boud rate TWBR = 0; // 0 - bardzo szybki, 255 = 14 kHz [/syntax] Chyba zaczynałem od 255 i doszedłem do 0. Zawsze możesz zwolnić tą magistralę. Ja mam kwarc 7,38MHz a EEPROM przy procesorze i oporniki 4k7 do VCC
A po co ci te informacje? Bo one nie mają żadnego praktycznego zastosowania. Jeśli 20MHz to za mało to masz serię XMega do 32MHz. Jeśli to ciągle za mało to zmień rodzinę. Parametry z noty są określane tak, żeby założony odsetek układów pracował w podanych warunkach. To znaczy, że większość będzie pracować przy szybszym zegarze, a jak szybkim nie ma...
Bootloader startuje zawsze jako pierwszy, sprawdza status aplikacji i jeśli trzeba dokonuje aktualizacji (treść aplikacji jest w pamięci RAM programu bootloadera dla testów), następuje restart i aplikacja startuje. Po wywołaniu aktualizacji z poziomu aplikacji w taki sposób: [syntax=c] if(!(PINB&(1<<PINB5))){ eeprom_update_byte((uint8_t*)E2END,...
[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.
Witam. Zrobiłem sobie prosty układzik który reaguje na sygnał z modelarskiego odbiornika RC i w zależności od długości impulsu zapala diodę lub ją gasi. Układ jest programowany przyciskiem podłączonym między PD2 a masę. Wywołuje przerwanie które zapisuje czas trwania stanu wysokiego. Bez zapisu tego czasu do EEPROM można go wielokrotnie programować...
No właśnie ten nie czyta HEX przy wgrywaniu w eeprom. No coż, prostu zapakowałem soft 2.11 i ustawiłem fusy na właśnie tą wersję i mam następujący wynik. Podłączeniu programatora zielona dioda szybko miga na sekundę , wciskam przycisk , szybko miga i pali się czerwone ciągle. Oczywiście będę bawił się po weekndzie następnym atmega 328 bo taki mam lecz...
Próbowałem 200kHz, 100kHz, 50kHz. Za każdym razem efekt ten sam. To może spróbuj zajrzeć do PDF-ka tej pamięci i zainteresuj się mechanizmem PAGE WRITE, bo to on jest źródłem Twoich kłopotów.
Programowałem ręcznie, problem jest ten sam. Odczytuje wgrany program do pamięci eeprom i jakiś program się tam znajduje. Dodano po 11 Już zastanawiam się nad innymi przyczynami, czy timery nie wpływają na odczyt lub zapis do pamięci. Po wyłączeniu timerów również jest to samo. Czy jest możliwe, że podczas włączania zasilania procesor nie jest odpowiednio...
Chyba najprościej przerobić bootloader. Po pierwsze dodając funkcjonalność zapisu do tego EEPROM. Po drugie, jako że prosty plik Hex ma przestrzeń adresową 64kB, natomiast ta Atmega nie ma tyle pamięci, to przypisać część niewykorzystanej przestrzeni "wirtualnie" do zewnętrznego EEPROM, aby bootloader "wiedział", że część danych ma tam wylądować. A...
Twój problem wynika bezpośrednio z ignorowania warningów i dlatego zaliczasz 10 stopień piekiełka . A jeżeli sobie z tym nie radzisz, to trzeba to napisać i pokazać już w pierwszym poście. Nie odpowiedziałeś na moje pierwsze pytanie - ciągnąć Ciebie za język trzeba ... a czas Ci leci ...
Przedstawiłem tylko sposób zapisu zmiennych w EEPROM'ie (zamiast używania Writeeeprom). Wszelkie obliczenia robisz na zmiennych w RAM a na końcu zapisujesz w EEPROM. [syntax=BASCOM]Dim Year_ram As Word Dim Year_ee As Eram Word [...] Year_ram = Year_ee 'kopiuj z EEPROM'u Year_ram = (a + b) * c 'jakieś modyfikacje Year_ee = Year_ram 'zapsz do EEPROM'u...
Zbytnio mi ta odpowiedź nie pomogła... To chyba niezbyt dokładnie przeczytałeś(zrozumiałeś) dokumentację DS18B20 :cry: Przypatrz się tabelce i zobacz, gdzie znajduje się rejestr konfiguracyjny, w którym zapisane jest, z jaką rozdzielczością ma "pracować" nasz DS. http://obrazki.elektroda.net/29_12275171... Zakładając, że nie znamy wartości...
A swoją drogą to trochę brak konsekwencji ze strony Atmela, sbr i cbr adresuje się przecież przez maskę. no ja też może nie przyznałbym racji, że to niekonsekwencja Atmela ;) ale .... też z powodu tego, że gdy pisałem programy w asemblerze to często przez te drobne niuansiki było sporo grzebaniny w kodzie, testowania, poprawiania, czytania dokumentacji...
Pewnie, że może w dokumentacji procka powinna być podana ilość cykli programowania, Dla AtMega 128 wynosi 1000 cykli zapisu dla pamięci FLASH i 100,000 cykli zapisu dla EEPROM. Pozdrawaim
Chodzi oczywiście o lock bity (lock - blokada). Swoją drogą skoro programujesz swoje avrki to jak możesz nie wiedzieć jeszcze nic o tych bitach ? Jak programujesz swoje AVRy ? Po pierwsze to nie są bity ustawiane z poziomu programu. PonyProg, AvrDude, AvrStudio, Bascom wszystkie pozwalają na ustawienie lock bitów. A blokując Flash lub EEPROM blokujesz...
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...
Właśnie sprawdzałem na MkAvrCalculator, procka wykrył prawidłowo, fuse bity mogę odczytywać i zapisywać poprawnie, eeprom podobnie, tylko przy zapisie do pamięci flash jest problem. Tego samego procka przedtem programowałem stk200 i wszystko było ok, ale spróbuję jeszcze na innym egzemplarzu.
Problem dotyczy wszystkich języków programowania i wszystkich mikrokontrolerów. Chodzi o uszkadzanie się zawartości pamięci eeprom kiedy program idzie w krzaki. Zauwzyłem, żę kiedy traktuję atmegę zakłoceniami emc potrafi o ona zacząć wykonywać inny fragment kodu (bascom), jakby skoczyła pod jakiś przypadkowy adres. objawia sie to czasem podwójnym pisaniem...
EEPROM będzie mi potrzebny (kiedy już trochę rozeznam się z c albo asm) np do zapisu stanów np z termometru. To teraz przeczytaj datasheeta tego mikrokontrolera i dowiesz się, że ma on EEPROM wewnętrzny. Po co ci więc dodatowy - zewnętrzny? zaoszczędzić sobie mogę bo mam na składzie Atmega8 16 pu, wyświetlacz hd44780 z żółtym podświetleniem, EEPROM...
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...
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...
Witam, 1. 400kHz I2C a 20MHz ISP. Ile razy szybszy jest odczyt (i ew zapis) pamięci DataFlash od I2c EEPROM? Po pierwsze: nie osiągniesz 20MHz transmisji do pamięci DataFlash bo największa dopuszczalna częstotliwość pracy ATmega128 to 16MHz, a do tego częstotliowść pracy magistrali SPI ( a nie ISP In Cicuit Programing - programownie w układzie ) jest...
Generalnie jak załączysz obrazek schematu to każdy może kliknąć miniaturę i ma podgląd w przeglądarce. Kiedy zamieszczasz PDF to trzeba go ściągnąć i otworzyć co zmniejsza szanse na to że komuś będzie się chciało czego jestem żywym przykładem. Gdybym widział schemat to bym o kondensatorach nie pisał - wniosek jest prosty - nie patrzyłem przed odpowiedzią...
Przecież dostałeś ode mnie opis nagłówka eeprom.h oraz dwa przykłady w tym jeden dokładnie taki jak potrzebujesz: Funkcje obsługi eeprom z nagłówka <avr/eeprom.h>: http://www.nongnu.org/avr-libc/user-manu... Tutaj jest dokładnie taki przykład jak potrzebujesz - po włączeniu odczytuje zapisane w eeprom parametry: http://mikrokontrolery.blogspo...k-podci...
Witam Nosze sie z zamiarem kupna zestawu uruchomieniowego zl3avr z atmega32. W ksiazce Mikrokontrolery AVR w praktyce Pana Dolinskiego jest opisana komunikacja za pomoca konwentera rs232<>usb dla uC AT90S2313. Czy w podobny sposob mozna ja zastosowac w atmedze32?(chodzi konkretnie o zapis danych przeslanych przez usb w pamieci eeprom uC i pozniejszego...
jeśli a zadeklarowane jest jako tablica: char a[128]; to adresem danych w tej tablicy jest: - a - &a[0] &a to ... w sumie nie wiadomo co [; 4\/3!!
Witam, zakładam że rzeczywiście zapisujesz coś do EEPROMa. Temat był już poruszany, ponieważ ATmega przy wyłączaniu/załączaniu zasilania ( w szczególności jeśli napięcie wolno narasta/opada - wolno dla kontrolera!! oczywiście ) jesli nie są spełnione określone warunki potrafi ( i robi to często) zapisywać przypadkowe dane do pamięci EEPROM. Poświęcony...
Witam, chciałbym spytać Was o poprawność zmiany rozdzielczości czujnika temperatury DS18B20 na 9-bit. Zmieniam to w nastepujący sposób: Zacznę od ostatniego pytania: To nie są bity - raczej bajty, i sa to tylko TH i TL i są wpisane tylko do Scratchpad. To by wystarczyło dopóki nie wyłączysz/reset processora. Musiałoby to pozostac częścią programu....
Z komparatorem też może wystarczyć jeden pin, jeśli procesor ma możliwość programowego podłączenia drugiego pod Vcc procesora. Można też zrobić tak jak pisze kol. (at)pawlik118 , tylko trzeba pamiętać, że próg przełączenia stanu pinu jest dosyć płynny i zależy m.in. od egzemplarza MCU, temperatury itd. Niemniej da się tak zrobić.
http://obrazki.elektroda.pl/3637756900_1... http://obrazki.elektroda.pl/6313868300_1... Zrealizowałem w tym roku swoje postanowienie jeszcze sprzed zeszłej zimy i zrobiłem sobie wreszcie własny sterownik pieca CO. Na początek pytanie "dlaczego"? Otóż oryginalny dostarczony z piecem przede wszystkim miał 6 poziomów nadmuchu...
Witam. część kodu z Bascoma (D zadeklarowane jako Word) Input "coś tam.. " , D Waitms 20 Writeeeprom D , 1 w procku "8535" bez problemów zapisuje daną liczbę. Po wymianie procesora na Atmega 16 lub 32, już nie zapisuje tej liczby (kompilator nie zgłasza żadnych uwag). "Po omacku" zauważyłem, że w w/w prockach działa dopiero po dodaniu jeszcze jednego...
Jest to słowo :) określające konkretny adres w pamięci. Jest ono zależne od budowy i sposobu adresowania pamięci. Najczęściej są to słowa 2 x 8 bitów. W dokumentacji pamięci masz dokładnie napisane co które bity oznaczają.
Spróbuj do każdej wartości dodać znak % na końcu: [syntax=basic4gl]Data 7848% , 7748% , 7652% , 7559% , 7468% , 7380% , 7294% , 7211% , 7129% , 7048% [/syntax]
Tak funkcje są potrzebne lecz aby ich użyć należy albo je za linkować z zewnętrznej biblioteki "include ....." albo najpierw zadeklarować a potem używać (Ty akurat robisz to odwrotnie w najpierw próbujesz użyć a potem dopiero deklarujesz funkcję - przesuń funkcje przed main()"
Przykłady bardziej zaawansowanego użycia EEPROM masz w przykładach do moich książek o XMEGA, tam też jest to dokładnie opisane. W skrócie - możesz w XMEGA korzystać z EEPROM dokładnie tak jak w ATMega (czyli funkcje z eeprom.h), lub możesz wykorzystać dodatkowe możliwości jakie daje kontroler w XMEGA. Czyli możliwość mapowania EEPROM w obszar SRAM,...
eeprom zapis atmega atmega zapis eeprom zapis eeprom atmega bascom
mercedes stacyjki sprinter tarcie paska delphi interfejs
Błąd P0003 i P0200 – usterka wtryskiwaczy, regulatora paliwa, diagnostyka ECU, objawy, naprawa Dwuteownik HEB 180/200 do podparcia ugiętego stropu betonowego 5x5m – dobór i montaż