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?
Na pierwszy rzut oka wydaje mi się, że źle wyliczasz długość struktury: eeprom_write_block(&mystructure,&EEStruc... sizeof(ST)) Obliczasz długość struktury podając w parametrze sizeof nowy typ strukturalny i pewnie wylicza wielkość struktury na jeden bajt, co za tym zapisuje blok jednobajtowy. Spróbuj zmienić na: eeprom_write_block(&mystructure,&EEStruc...
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
A jak jest zadeklarowana zmienna? Jako uint16_t?
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.
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.
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.
Proszę, oto kilka tematów nt. EEPROM, RAM i FRAM: http://www.elektroda.pl/rtvforum/topic26... http://www.elektroda.pl/rtvforum/topic26... http://www.elektroda.pl/rtvforum/topic24... http://www.elektroda.pl/rtvforum/topic13...
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ć...
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ć...
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...
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.
Spróbuj z Instrukcją CONFIG I2CDELAY
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...
Ciężko ci to zrozumieć że od samego początku masz źle? void konwert2(char tekst char tekst do char pomoc ?
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...
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.
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...
A czy przy zapisie do eeprom nie brakuje przypadkiem I2CStart??? Marek
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();...
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(...
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...
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...
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...
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...
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....
(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.
Czyli po kropce podajesz nr odczytywanego bitu, a możesz wyjaśnić dokładniej jak z zapisem jednego bitu?
Są raczej w porządku. A widziałeś że tam jest rozkaz uaktywniający zapis? WREN? Wywołaj to: WREN_EEPROM() { SPI_Enable(); SPDR = 0b00000110; while(!(SPSR & (1<<SPIF))); SPI_Disable(); } przed pierwszym zapisem.
Witam. Zanim postanowiłem napisać nowy temat przeglądałem różne tematy z podobnymi do mojego problemami i nic z tego nie rozumiem. Do rzeczy- zbudowałem sterownik do zgrzewarki oparty na uC Atmega8A https://obrazki.elektroda.pl/9250457200_... Problem polega na tym że uC nie pamięta zapisanych ustawień (czas preimpulsu, czas przerwy,...
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 :-)
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ę.
Ż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....
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
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 :(
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...
[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.
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.
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?
Dziekuje za pomoc. Zapis powiódł sie bez problemowo. Makra to przydatna sprawa.
Nie można, gdyż nie można typom przypisywać atrybutów i to po prostu w zależności od wersji kompilatora nie zadziała. Jeśli chcesz cText trzymać w EEPROM to zmień char na wskaźnik na tekst i ten tekst umieść w EEMEM. Swoją drogą jeśli tekst w czasie życia programu się nie zmienia, to lepiej go trzymać we FLASH - raz, że masz go więcej, a dwa, że dostęp...
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...
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 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
dlaczego nie c? po krótce: dawno, dawno temu w sterownikach do urządzeń które projektowaliśmy zastosowałem 8080 a wtedy dostępny był asembler. Później na przeszło 25 lat zmieniłem zawód i nie miałem nic do czynienia z elektroniką. A co oznacza 25 lat w elektronice....... Teraz nauka c to zbyt "pracochłonne zajęcie" , gdy już "pamięć nie taka" .Teraz...
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....
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)
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.
... 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...
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ć...
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...
Dzięki, testy na Arduino potwierdzają, że funkcja EEPROM.put() faktycznie czeka aż zapis się zakończy i trwa to ~3,35ms na bajt. Pozostając jeszcze w temacie EEPROM-u, jak to jest z tą ilością cykli zapisu do pamięci? Zauważyłem, że większość uC ma tą wytrzymałość deklarowaną na 100k zapisów, niektóre (np. Atmega88) tylko 50k, ale czy ktoś to w ogóle...
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...
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...
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...
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,...
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....
Programuje EEPROM, automatycznie się programuje poprzez ECLIPS. Odnośnie deklaracji to deklarowałem już w dwie strony uint8_t EEMEM pamt1=0 oraz uint8_t pamt1 EEMEM=0 i w obie jest tak samo, kompilator też nie widzi błędów w obu zapisach. Właśnie szukając gdzieś na forach znalazłem 2 formy zapisów, myślałem że tylko taki błąd jest, natomiast tu nie...
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...
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
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...
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,...
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...
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...
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...
[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.
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...
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...
A nie jest tak że do tego procesora jest potrzebna inna biblioteka do eeproma? Bo coś miałem z ATmega169
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
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...
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...
Witam Czy jest możliwość stworzenia tablicy która będzie zapisana w pamięci eeprom ?? Mam ta tablice ( raczej dane jakie mam w niej umieścic) i jak nie ma innej opcji wpiszę je ręcznie w edytorze hex.. korzystam z avrstudio i nie bardzo wiem jak mogłbym sobie z tym poradzić ten uC ma 512 bajtów moje dane zajmują troche ponad 300 chodzi mi o przykład...
Co do: Procesor32 napisał: Zapisujesz nazwy pod ten sam adres w EEprom Writeeeprom Q , 13 I odczytujesz też z tego samego adresu. Jeśli przeczytałbyś dokładnie post I po sprawie.Nie musisz pamiętać adresu pod który masz zapisywać i z pod którego odczytywać. Prosto i bez problemu. Jest to prosta metoda zapisu do EEProm, ale ma zasadniczą wadę. Użytkownik...
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...
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...
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
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...
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...
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ą...
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...
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...
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.
zapis eeprom atmega eeprom zapis atmega zapis eeprom atmega bascom
wolne ładowanie baterii samsung rower ładowarka dynamo skoda 16555
czujnik ciśnienia spalin mercedes auris hybrid
Junkers podgrzewacz wody – buczenie, przyczyny, diagnostyka, Bosch Cerapur, Condens Mercedes Vito W447 – kontrolka pedału sprzęgła, brak rozruchu, czujnik CPS, diagnostyka