Jeśli wiemy, że pewne wartości nigdy nie są zapisywane, najlepiej 0xFF to drugi bufor nie jest potrzebny. Ciekawe, na czym to polega? Po/przed zapisanym bajtem dajemy 0xFF ? Jeśli tak to 2x i tak nam skróci żywotność ale może to jakoś inaczej działa?
A kto to moze wiedzieć. Kupić atmege i sprawdzić.
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?
Najlepiej nigdy, przenigdy nie rób takich rzeczy ;) Argumentem tej funkcji powinien być wskaźnik ale ty stosujesz tu rzutowanie i na własną rękę numerujesz komórki pamięci w EEPROM. To doprowadzi cię kiedyś do zagłady ;) jak już to najpierw zdefiniuj sobie zmienną w pamięci EEPROM: unsigned char zmienna EEMEM; a potem np: mem_year = eeprom_read_byte(...
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.
A czy przy zapisie do eeprom nie brakuje przypadkiem I2CStart??? Marek
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...
Piszę program który w założeniu ma posiadać pamięć ustawień. Dokładniej jest w nim 11 zmiennych oraz 128 możliwości ich ustawień (128 banków pamięci dla tych 11 zmiennych). Każda zmienna jest 8bitowa. No i dostaje od kompilatora (WinAVR ) dziwne komunikaty: warning: pointer targets in passing argument 1 of 'eeprom_read_byte' differ in signedness W kodzie...
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
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.
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,...
Dalej nic!!! Co do konfliktu adresow: 1010001 to adres PCF'a A0=1 1010000 a to EEPROM'u A0=0 i P0=0 Wiec wedlug mnie poki co konfliktu nie ma. Chociaz lepiej bedzie jesli zmienie adresy na: 1010000 PCF z A0=0 1010010 EEPROM z A0=1 i P0=0 1010011 EEPROM z A0=1 i P0=1 Dziwna sprawa... poza tym nawet jak wyciagne PCF'a to i tak EEPROM nie dziala. WP w...
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...
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...
Ż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....
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.
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...
return przydałby się na końcu. I zacznij stosować ISR() Matko boska! tadzik weź ty się ze 4 albo 6 razy zastanów jak coś podpowiesz - RETURN w procedurze obsługi przerwania w C ????? Chyba że ty piszesz swoje programy w Bascomie ze wstawkami w C albo odwrotnie. do autora - żadnego polecenia return w przerwaniu bo będziesz miał tylko jeszcze gorzej....
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...
O to Ci chodziło: http://www.captain.at/electronic-atmega-... ???
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 :-)
Dziękuję i proszę o coś dokładniejszego. Może rozdział 8.15 w książce M. Wiązani MAc
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ę.
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...
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.
Dane do zapisania do pamięci FLASH wydobywa się ze skompilowanego pliku ELF, przy pomocy avr-objcopy , zarówno dla pliku HEX i binarnego. Makefile wygenerowany przez MS7 zwiera taki wpis: ihex na binary : [syntax=text]"...\avr-objcopy.exe" -O binary -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "test1.elf" "test1.bin" [/syntax] Ale...
Najlepiej to powołaj sobie nowy typ: [syntax=c]typedef struct { uint8_t id; uint8_t behavior; uint8_t items_in_menu; Menu_Entry *sub; Menu_Entry *parent; char cText[17]; FuncPtr call_me; } TMENUENTRY;[/syntax] a następnie w kodzie zdefiniuj już sobie pięknie zmienną w EEPROM ;) [syntax=c]TMENUENTRY Menu_Entry EEMEM; // ta zmienna będzie w EEPROM[/syntax]...
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...
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:...
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...
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...
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...
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 :(
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ć...
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.
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....
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ą.
No np mozesz zrobić cos w tym stylu: Dim T(4) as byte Dim i as byte For i = 1 to 4 writeeprom T(i), i next i W T(1) - T(4) umieścisz sobie dane (mintuty, godziny czy co tam jeszcze chcesz)
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...
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...
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?
... 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...
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...
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...
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,...
Co do wysyłana szesnastkowych wartości przez RS'a. Możesz użyć funkcji sprintf(); Wyglądało by to następująco: sprintf ( Bufor, "%X:%X:%X:%X:%X:%X", MAC[0], MAC[1] .......); Bufor powinien mieć wielkość 6*3 bajtów. Zostanie w nim zapisana np. tak postać: "0C:2A:......" Aby wykorzystać tą procedurę musisz dołączyć stdio.h. Tu pojawiają się pewne schody....
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....
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...
witam wszystkich. W jaki sposob moge zapisywac szereg zmiennych w eepromie avr'a pod jakas tam nazwa a potem je odczytywac. np. mam trzy akwaria "A" "B" "C" i w akwarium A mam trzy zmienne temperatura dawka jedzenia czas swiatla. kazde z tych trzech akwariow ma inne parametry i chodzi mi o to by po przeniesienu urzadzenia z akwarium A do akwarium B...
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
http://obrazki.elektroda.pl/3799930900_1... Jakiś czas temu pisałem, jak nagrywać gry z PC na PEGASUSA. Teraz pora podejść do tematu z drugiej strony – jak zgrać naszą ulubioną kolekcję kartrydży na komputer. Wiele osób może się dziwić, po co taki zabieg, zwłaszcza, że większość gier z tej konsoli krąży już po Internecie. Czasem...
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...
[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.
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.
Czy przypadkiem między zapisem a odczytem nie powinieneś sprawdzić czy eeprom nie jest zajęty? Zapis jakby nie było trwa kilka milisekund. Konkretnie eeprom_busy_wait(); .
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...
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...
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 ...
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...
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...
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
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...
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...
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...
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.
To czytałeś :: Przystępujemy do programowania karty. Sposoby programowania kart zmieniają się równie szybko, jak sam soft do tunerów, zresztą w głównej mierze to od softu w tunerze zależy jaką metodę wykorzystamy do zaprogramowania funki. Kilka miesięcy temu bardzo popularne były wsady typu 5in1 i multicam. W tej chwili najlepszym wsadem do funek wydaje...
Schemat poprawiłem. Zmieniłem w pierwszym poście. Faktycznie, aż miło popatrzeć. Sam czasem się wkurzałem szukając ścieżki. Pomierzyłem jeszcze prądy: Atmega + SD - 220 mA Atmega bez SD - 140 mA atmega bez LCD i bez podświetlania - 84,9 mA Atmega z LCD bez podświetlania - 88 mA W założeniu ma to być: - pomiar z siedmiu DS18B20 - pomiar z dwóch czujników...
Witam Jaką pamięć zewnętrzną zastosować dla mikrokontrolera (Atmega8 lub Atmega 644)? wymagania mam takie: - szybki zapis - 1 bajt co 10 us (100kHz) lub 1000 bajtów co 10 ms - pojemność minimum 16kB im więcej tym lepiej - rozsądna cena -pamięć może być ulotna co wybrac? -EEProm (chyba zbyt powolny) -FRam -flash -sd/mmc -zewnętrzny SRAM (jak sie podłącza...
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ą...
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!!
atmega zapis eeprom eeprom zapis atmega zapis odczyt eeprom atmega
sterowanie falownika profibus candy czujnik ciśnienia przedłużacz kabel
Pilot Manta DVBT018 – oryginał, zamienniki, kody uniwersalne, kompatybilność DVBT017/019/022/023PRO Selfa STF-6 falownik – migający wykrzyknik, alarm, kody błędów, Grid OV, ISO Fault