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.
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
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...
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(..)...
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.
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ć...
a czy odczekujesz, aż pamięć zdąży wykonać operację zapisu? Potrzeba jej na to ok 10ms. Byćmoże symulator to tego nie uwzględnia. Wstaw delay między poszczególne operacje zapisu do pamięci, lub testuj flage zakończenia zapisu do pamięci.
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]
obsługa wyświetlaczy powinna być zrobiona w przerwaniach, a zapis do eeprom w pętli głównej programu przed samym zapisem do eeprom trzeba wyłączyć przerwania, a po zapisie włączyć sprawdź ile w atmega8 trwa cały cykl zapisu do eeprom, z tego co pamiętam jakoś strasznie długo (około 3ms, ale mogę źle pamiętać) ale i tak przy odpowiednim ustawieniu powinieneś...
znaczy ze z pamieci SRAM dane same znikaja w trybie idle lub sleep? skoro piszesz w C, to co cie obchodzi w jaki sposob realizowane jest adresowanie posrednie? 4\/3!!
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
Datashee atmega8 ...write/erase cycles: 10.000Flash/100.000 EEPROM.. czyli 5.000 cykli gwarantowane
Witaj Brzoza900 Ja kiedyś zastosowałem taki zapis eeprom tylko trochę inaczej, i działało dobrze. Układ był taki. Zasilacz 12V, stabilizator 5V. Napięcie brane przed stabilizatorem poprzez dzielnik napięcia aby uzyskać 4V zabezpieczone diodą Zenera 5V. Reszta jak u Ciebie. Zanik napięcia na zasilaczu powodował natychmiastowy zapis eeprom i zakończenie...
Witam, Zapis do pamięci jest zbyt wolny. Dla ATMEGA8 zapis jednego bajtu do EEPROMu trwa ok. 8.5ms Natomiast odbiór jednego znaku (10bitów) przy prędkości 9600bodów trwa 1.04ms. Tak więc w Twoim przypadku zanim zapiszesz odebrany bajt do EEPROMu to zdąży przyjść już kilka następnych których nie zdążysz obsłużyć. Pozdrawiam JarekC
Zmiana OSCCAL na maksa może spowodować problemy przy zapisie do EEPROM i FLASH. Możesz trochę zrobić wstawek asemblerowych w newralgicznych miejscach programu.
Witam. Od pewnego czasu zacząłem się bawić w programowanie eepromu w atmedze i już napotkałem kilka nieprzyjemnych doświadczeń. Zacznę może od zapisywania pamięci eeprom. Mam kilka pytań z tym związanych, więc je ponumeruje :). 1. Jak to jest zapisałem do eepromu jakiś znak, potem go odczytałem. Żeby sprawdzić, czy wszystko gra wyświetliłem go na LCD....
Witam. Przecież w wylistowanym programie masz zapis i odczyt pamięci EEprom. teedd
Write_to_eeprom(0xAA,adress); //np adres 0xAA; przy daress=0; czekaj ( ile); liczba = Read_from_eeprom(adress); //zwraca mi liczbe zczytana powinno dzialac
Nie, adres to "word" na pewno kurcze, im dłużej patrzę tym mniej rozumiem... tak samo zapisuję i odczytuję adres jak i zmienną wpamięć, obie typu word i jedna się zapisuje poprawnie a druga nie.. jest co prawda rozwiązanie działające - zapisuje adres w eepromie procesora i śmiga aż miło, ale to takie... nie od końca to :)
Chodzi Ci o zapis do pamięci EEPROM? W wątku http://www.elektroda.pl/rtvforum/viewtop... zamieściłem plik lib_avr.zip, w nim znajdziesz odpowiedź na Twoje pytanie (jest tam biblioteka i przykładowy plik z krótkim programem.
Możesz zrobić podtrzymanie zasilania na kondensatorze i monitorować stan na jakiejś nóżce przed tym układem-tam zniknie zasilanie najpierw i wtedy wykonać procedure zapisu stanu do eeprom.
Próbowałem już kilu różnych rzeczy i nadal nic. Nie wiem jakie jeszcze opcje mi zostały :(. Podstawowa opcja , to oczywiście ... dokumentacja ;) Powiedz mi , dlaczego tak "szastasz" bitem TWEA :?: Ten bit należy ustawić , wyłącznie(!) przy przesyłaniu danych z slave do master i to pod warunkiem , że master ma zamiar odczytywać jeszcze jakieś dane ze...
Dzięki za podpowiedź. Już wszystko działa. Problem polegał na tym, że po zapisaniu danych do eepromu wyłączyłem programowanie eepromu w pliku makefile aby nie forsować tej pamięci. Programator kasował za każdym razem pamięć EEPROM i nic nie wpisywał bo zablokowałem zapis EEPROM. Jeszcze jedno pytanie na zakończenie: Czy rzeczywiście programator kasuje...
Za każdym razem, kiedy wgrywam program na procesor za pierwszym odczytem pojawiają się właśnie śmieci, a nie dane, które były wcześniej zapisane, więc chyba jednak w momencie programowania procesora właśnie "wpalam" eeprom. Wiem tylko, że można uniemożliwić zapisywanie eepromu w fusebitach. Niezupełnie, w fusebitach można tylko ustawić, aby nie kasował...
Witam cię miałem podobny problem. programuje w bascomie ale postaram się podpowiedzieć ci w czym tkwi problem przy zapisie pamięci. Jeżeli umiesz odczytać zawartość pamięci to w zapisie jest tak że po rozkazie cch ,55h czyli kopiujesz do notesu podajesz ta1 ta2 e/s wtedy dajesz czekaj 5ms potem tablice do w w pisania do eepromu powinno zadziałać od...
To co pisze hotdog oczywiście jest słuszne. Ale przypuszczam, że problem jest bardziej złożony. Stare AVRy, do których zalicza się ATMega8 miały problem z komórką EEPROM o adresie 0, najlepiej jej nie używać. Druga rzecz - obowiązkowo włącz BOD - zapis przy niepewnym zasilaniu spowoduje bzdury w pamięci. Musisz też zagwarantować, że na czas operacji...
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...
A google nie działa?. Twój problem jest problemem twoim i indywidualnym. Wybudzać procek możesz również Uartem. Na niewielka ilość danych to tak jak tmf powiedział fram lub nawet eeprom..
Polecam atmega8 + eeprom. Oprogramowanie zapisu do pamięci flash uc wymaga znajomości programowania w asemblerze oraz przekazywania danych z języka wysokiego poziomu do asemblera. Do obsługi eepromu zarówno po spi jak i i2c znajdziesz dużo przykładów w sieci. Raczej nie polecam attiny2313 - jak pisałem wyżej niewielka róznica w cenie a tylko 2k pamięci...
Strasznie szybko sobie zjedziesz EEPROM - ma przecież tylko 10 000 razy cykl zapisu gwarantowany, czyli po 10 000 zmian możesz mieć poważne problemy - komórka padnie. Albo zmieniaj co jakiś czas komórki, albo zapisuj dane przy wyłączeniu urządzenia - dodaj większy kondensator podtrzymujący zasilanie i jak wykryjesz spadek napięcia zasilania przed kondensatorem...
2. Straszna rzecz piszesz 11111olo. Do Vref nalezy podpiac, do avcc nalezy podpiac odfiltrowane napiecie zasilania. 1. No cos musisz sobie wymyslec ;) Zapis i odczyt z eepromu jest opisany w dokumentacji gcc, a jak bedziesz zapisywac to juz twoj wybor ;)
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...
W momencie zapisu (konkretniej w jednym jego kroku) trzeba wyłączyć przerwania, bo pamięć EEPROM wymaga ściśle określonej liczby cykli. Jest to opisane w datasheecie np. ATmega8. Nie wiem czy funkcje w Bascomie to realizują, ale można sobie napisać je samemu i to bez stosowania wstawek assemblerowych, Bascom umożliwia przecież operacje na rejestrach...
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...
Wnosi. Szacunkowo dla wspominanej A88 skraca czas zapisu 5 bajtów około 1000 razy ;-) Albert
Only one variable? What if you actually not set value of the variable? Should LCD display something else (like switching main screen/menu screen)? Do the buttons should have autorepeat or just one press = +1 You should be more precise
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ę.
mam nadzieję tylko, że początkujący kolega henryxxl zdaje sobie sprawę, że użycie zewnętrznej pamięci EEPROM - nie oznacza, że będzie można w niej zapisywać kodu programu - jedynie tylko jakieś tam dane do odczytu/zapisu (myślę, że to jest oczywiste - tak tylko się upewniam) .... natomiast z ciekawości - do czego ci aż tyle pamięci EEPROM - skoro jest...
[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.
Wyświetlacz się inicjuje ale wyświetla tylko wypełnione czarne kratki, żadnego tekstu. Zamieniłem port na D (0x12) bo mega8 nie obsługuje A. Wydaje mi się, że trzeba wcześniej zadeklarować bity pamięci EEPROM przy zapisie jak podał maxiu25. Spróbuję tak zrobić.
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 Chciałem poszerzyć pole swojego działania w ATMEGA8 o zapis i odczyt danych z pamięci wewnętrznej uC EEPROM. Otóż znalazłem na 20 i 21 str. manuala ATMEGA8 funkcje w C zapisu i odczytu danych z EEPROM uC. Oto one: Zapis do EEPROM: void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous...
Zależy od wymaganej dokładności. Można pomiary zrobić tak: uint32_t motogodziny; const uint8_t precyzja = 10; /* 10 bitów ułamkowych = ok. 1/32 motominuty */ const uint16_t nominalne_rpm = 400; for (;;) { uint16_t impulsy = 0; while (!minela_minuta) { /* zliczaj_impulsy */ } /* zeruj licznik impulsów i odliczanie minuty...
Nie znam dobrze tego procesora. Jeżeli ma on wewnętrzny eeprom to jak najbardziej się nadaje. Może dobrze byłoby zająć się jakimś popularnym procesorem (w tej chwili atmega8 jest chyba najpopularniejsza i spokojnie poradzi sobie z twoim zadaniem). Jedno co musisz pamiętać to do eeproma nie można robić zbyt wielu zapisów(jest to przeważnie kilka-kilkadziesiąt...
Zanik napięcia zasilania powinieneś mierzyć przed diodą D3, żeby kondensator filtrujący C1 nie wpływał na wynik pomiaru (po wyłączeniu zasilania, napięcie na C1 powoli opada i mikrokontroler po wykryciu zaniku napięcia może mieć za mało czasu na zapis do pamięci EEPROM). Podłącz rezystor R2 przed diodą D3. Dobrze by było trochę zmniejszyć wartości rezystorów...
No to chyba będę musiał się w atmegę16 wyposażyć. Mam już 6,5KB/8 a jeszcze troszkę muszę dopisać. Czy mógłbym prosić o podrzucenie jakiegoś sensownego linku jak pisać kod optymalnie pod kątem rozmiaru pliku wynikowego po kompilacji? Ewentualnie jeszcze coś o zapisie do eeprom.
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:...
przy zapisie powinieneś uważać na przerwania, zapis uint8_t uiStatusSREG = SREG; cli(); eeprom_busy_wait(); eeprom_write_block(&ram, &ee, sizeof(ram)); SREG|=uiStatusSREG&0x80;
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...
Witam ! Arduino IDE, zapis /odczyt do wewnętrznego EEPROMU. Jak spowodować aby PIERWSZY odczyt np. komórki "0" nie wyświetlał 255 ? ATmega8 [syntax=arduino] #include <LiquidCrystal.h> #include <EEPROM.h> LiquidCrystal lcd(19, 18, 17, 16, 15, 14); float temp = 0.50; void setup() { EEPROM.get(0,temp); } void loop() { lcd.clear(); lcd.setCursor(0,...
Co do odczytu, masz rację, umknął mi brak włączenia zamiast ACK, ale zapis masz źle. Przy zapisie nie wysyła się ACK, wysyła go zawsze odbiorca, czyli w wypadku zapisu kostka EEPROMu.
char jeden EEMEM; char numer=0; char wybrany[6]; int main(void) { LCD_Initalize(); //poczatek losowania numer, odczyt, zapis numer=eeprom_read_byte(&jeden); LCD_GoTo(5,0); itoa(numer,wybrany,10); LCD_WriteText(wybrany); if (numer>41) {numer=1;} else {numer++;}...
A od czego posiada kolega pamięć EEPROM w procesorku :?: Wystarczy że standardowo zapiszesz te 4 bajty do eepromu (domyślne) a później każde programowanie będzie modyfikowało ich zawartość :) Tylko trzeba pamiętać że eeprom ma ograniczoną ilość zapisu :) Pozdrawiam maly_elektronik
Do odbioru kodu Rc5 nie jest potrzebny Eeprom. Chyba że to nowa sprawa ? która Ciebie interesuje. odczyt z eepromu - Readeeprom zmienna , 1 zapis do eepromu - Writeeeprom zmienna , 1 te rozkazy dotyczą eepromu wbudowanego w ATtiny2313
Zrób tak: Dim Temp As Byte Dim Reserved As Eram String * 8 Dim Zmienna As Eram Byte Dim Status As Eram Byte If Status <> 123 then Reserved = "Reserved" Zmienna = 100 'Ustawienie wartości po programowaniu Status = 123 End If Temp = Zmienna 'Odczyt zmiennej z EEPROM'u do RAM Temp = Temp + 22 'Modyfikacja Zmienna = Temp 'Zapis nowej wartości...
Odradzam wykorzystanie pamięci EEPROM ze względu na to iż ma bardzo małą ilość kasowań.
Ad.1 Odpowiedź ze strony producenta : DataFlash® is the world's number one selling serial interface flash family. Introduced in 1997, Atmel's Dataflash families (45 series and the recently introduced 26 series) are feature rich, low pin count, sequential access families ideal for program code, data storage, Serial EEPROM replacement, and the next...
a co chcial bys zeby bylo w tym pliku epp? teraz go nie ma bo nic nie wpisujesz do pamieci eeprom. Jak zrobisz odczyt i zapis to powinien sie pojawic Wiem ze twoj kod dzialal ale bylo duzo bez sensu komend.
Wg mnie, w tej funkcji write , szczególnie dziwny, na pierwszy rzut oka jest ten fragment ee93_cs_h; while(bit_is_clear(ee93_pin,ee93... { loop++; if(loop == 200000) return 0; } ee93_cs_l; ta funkcja może się bardzo różnie zachowywać gdy bedzie działać np na procku z taktowaniem 1MHz albo na procku z taktowaniem...
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...
a wiec tak. jeśli dalej nie działa to mam jeszcze 2 pomysły. 1. zmniejszyć rezystory podciagające do 4,7Kohma 2.gdzieś czytałem że zapis w rejestrze TWDR jest możliwy tylko gdy bit TWINT w rejesrze TWCR jest zerem. gdy chcemy cos wpisać do TWDR to najpierw musimy go ręcznie wyzerować (bit TWINT). niech kolega spróbuje to uwzględnić. ja w moim programie...
Mam jeszcze jeden problem Ponieważ napisałem coś takiego i wyświetla mi tylko litere d: A="dyzio" B=A Lcd chr (b) A to zmienna string B to byte Myślałem że te b to poprostu za mała zmienna ale jak wybieram zamiast byte np. Word to wyskakuje mi error 242. Co muszę zrobić by to zadziałało? (Wyśwetlało mi sie dyzio na ekranie. Oczywiście musi być ta zmiana...
Przecież wszystko opisane w datasheecie. Przykładowe podłączenie: 1,3,7 do masy, 2 nie podłączone, adres do zapisu 0b10100xx0 (do odczytu 0b10100xx1), xx - najstarsze bity adresu komórki.
Ale się uparliście o ten kalendarz :P A takie pytanie. Czy po zapisie flasha, jeśli w eepromie siedzi jakaś wartość od PWM-a, to trace tą wartość - eeprom się zeruje? Normalnie zawartosc wew. eeprom'a pozostaje bez zmian chyba, ze masz ustawiona opcje kasowania podczas zapisu flash'a...
Po zmianie cykle_w z int na unsigned int, nie ma tych błędów, ale potrzebuję w tej zmiennej przechować też wartości ujemne, zresztą nawet mimo tej zmiany nie mogę przekroczyć 255, nie wiem już czy to coś z tą funkcją, czy mam tak nawalone w kodzie. EDIT: Jednak to była wina itoa, zadeklarowałem ją tak: main.c:208: warning: passing argument...
Nie zaznaczyłem bitu. Gdzie to się robi? Do programowania używam USBasp-a i AVRDude odpalanego z Atmel Studio. Z zapisem do EEPROM, nie mam problemu, chodzi mi o wartość inicjującą zmienną. Dopóki nie zapiszę czegoś w EEPROM to mam tam 65535 zamiast 270, a chciałbym, żeby 270 było tam od razu po zaprogramowaniu mikrokontrolera (o ile to możliwe). To...
Nie do końca wiem o co Ci chodzi , hm mógłbyś jakiś przykład dać? Myślałem jeszcze o użyciu pamięci EEPRom tylko pewnie na długo by nie wystarczyła zapis/odczyt przy codziennym użytkowaniu
Po pierwsze data sheet www.alldatasheet.com tam na pewno znajdziesz Po drugie tak możesz programować EEPROM I2C w układzie , ale lepiej zdejmij rezystory pullup to do +5V lub czasowo odłączaj magistralę o uPc niewiadomo czy nie zwarjuje lub nie popalisz portu wyjściowego. Zawsze jeszcze możesz dorobić UART na Maxie i pisać do EEPROMU wykorzystując port...
możesz zrobić przerwanie z timera + programowy "watchodg" który sprawdzi co jakiś czas czy procesor działa. Jeśli nie (bo wartość w programowym watchdogu jest zbyt duża) to wtedy taka sekwencja: 0. sprawdzenie flagi "gotowy" - jeśli ustawiona to czekaj na reset z WD - nie rób nic 1. reset wd 2. zapis do eeprom 3. ustawienie flagi "gotowy" cóż, słyszałem...
Jak wyłączysz procek w trakcie zapisu eepromu to nie dziwota że zapisze go źle... Czy przypadkiem nie robisz tak że naciskasz menu i zaraz go wyłączasz?
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()"
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...
. Język BASCOM BASIC oferuje wiele instrukcji obsługujacych wyświetlacz LCD. Aby jednak mieć całkowitą kontrolę nad wyświetlaczem można stosować procedury w języku asembler. Poniżej znajduje się przykład: $asm Ldi _temp1, 5 'załadowanie kodu rozkazu do R24 Rcall _Lcd_control 'prześlemy do LCD jako komendę Ldi _temp1, 65 'załadowanie do R24 kodu znaku...
A w jaki sposób sprawdzasz odczytane dane z eeprom? Miej na uwadze fusebit EESAVE. Bo domyślnie ten fusebit jest wyzerowany ( mam tu na myśli ATMEGA8), więc za każdym razem gdy wgrywasz program do mikrokontrolera pamięć EEPROM jest kasowana. Sprawdziłem Twój kod w symulatorze no i działa.
Witam. Fajny projekcik :D a jak zmieniasz cytaty? Ja bym dodal opcje wgrywania cytatow przez wpisywanie ich do terminala i zapisu do eepromu. Pozdrawiam
Ciesz się , że to wogóle działa :D Przypatrz sie 1-szej linii i napisz , czy po jej wykonaniu linia SDA będzie rzeczywiście w stanie niskim :?: void EEPROMStopTransmition() { EEPROM_PORT |= ~EEPROM_SDA; //***************** EEPROM_PORT |= EEPROM_SCK; EEPROM_PORT |= EEPROM_SDA; } Piotrek
"- a nie mówiłem :), pulling to pulling". czytaj dokładniej bo o tym na samym początku mówiłem i ja i inni i sam Osamu Tamura - tak więc z tego typu twoich wypowiedzi wynika tylko to co w skrócie zamieściłem w kilku linijkach poniżej: ... a nie mówiłem, że mówiłeś iż mówiłem o tym, że mówiłeś - to ty nie wiedziałeś że mówiłem o tym, że mówiłem ...................
Po pierwsze to zajrzyj do pdf'a odbiornika IR, bo na Twoim schemacie brakuje konda i rezystora przy podłączeniu TSOP'a. http://pdf1.alldatasheet.com/datasheet-p... Ma być w programie: Wygaszacz (godzina + temperatura), - Czasomierz najprościej na programowym RTC: str. 244 w książce Wiązni, zaś temperatura - str. 293. Wszystko...
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...
Taka rejestracja może zająć napeweno więcej niż 3 bajty. Jeśli przykładowo w ciągu minuty otwarte zostana te drzwi to musisz zapisać pełną date i czas z sekundami co da 6 bajtów dla zdazenia - dzień, miesiąc, rok, godziana, minuta, sekunda. Dodatkowo bajt zdażenia i zabezpieczenie poprawności wpisu CRC. Ważne jest też aby sterownik rejestrujący wiedział...
Mierzy się napięcie przed mostkiem, a za mostkiem masz cap z powiedzmy 100uF do zapisu eepromu wystarczy (jeśli będzie odłączona część "estetyczna" - świecidełka gasną...
Tak jak w temacie, chce zapisać zmienną typu string 80 znakową do 24c16, czy musze to jakoś konwerterować, czy eeprom "przyjmie" stringa ? Procek to atmega8
Czy tym układem dam radę przesyłać dane przez I2C ? I do czego służy ten dodatkowy eeprom ? :) Nie da rady przesyłać danych, eeprom miał być użwany do zapisu pozycji ale nie dało się tego w przystepny sposób zrobić i porzuciłem tą opcję
Witam Potrzebuję napisać programik na ATmege8 np. w BasCom-a, który czyta kod z dowolnego pilota podczerwieni, zapamiętuje go do pamięci EEPROM AVR. Pozdrawiam Dowolnego pilota, znaczy że, ze wszystkich pilotów, czy wystarczy np z kodami pilota pracującego w kodzie RC5?
Pokaż schemati ew. zdjęcie. Taka różnica naięć zasilania nie jest przyczyną uszkodzenia. Jeśli chodzi o kondensator, to 10 uF wystarczy, o ile oprogramowanie nie jest jakimś koszmarem. Ja np. przy zapisie pojedynczych bajtów przy zaniku zasilania w ogóle nie separuję zasilania uC i reszty.
Rozumię, że chodzi o zapis do pamięci EEPROM a potem odczyt z pamięci. Aby dokonać zapisu do EEPROM-u należy: Dim x as long 'definicja zmiennej "x" typu Long x = .... 'wpisać wielkość tej zmiennej writeeeprom x , 1 'zapisanie zmiennej "x" do komórki "1" EEPROM-u Aby odczytać z EEPROM-u: readeeprom x , 1 'odczyt zmiennej "x" z komórki "1" EEPROM-u Uwaga:...
Witam. Szukam jakiegoś opisu dotyczącego zapis i odczyt do eepromu w atmega8 napisanego w języku C. Jestem początkujący w programowaniu uC dlatego jeżeli jest to możliwe to żeby ta metoda opisana była w stylu jak na tej stronie: [url=http://www.kursc.dioda.com.pl/]http... Mam jeszcze pytanie czy jest możliwość zaprogramowania...
Mam w swoim urządzeniu taki patent jak proponuje lotnick. Atmega8 na wewnętrznym oscylatorze 8MHz, dioda schotky za stabilizatorem 5V i kondensator podtrzymujący 100uF. Przy zaniku napięcia wywoływane jest przerwanie w którym zapisuję do eeprom cztery bajty (zmienna typu single). Nie przeprowadzam jakichś dodatkowych zabiegów programistycznych ograniczających...
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, Mam do Szanownych Kolegów pytanie: Czy odczyt danych z pamięci EEPROM wpływa na jej trwałość (jeśli tak, to w jakim stopniu), czy też pamięć ta zużywa się tylko poprzez zapis i kasowanie? W datasheecie producent podaje tylko informacje odnośnie ilości gwarantowanych cykli zapisu i kasowania (chyba, że coś źle poczytałem), tak jakby odczyt nie...
W atmedze 8 chyba nie ma już tej opcji dzielenia przez 8, widziałem ją w attiny 2313. Chciałbym poznać też zdanie innych na temat pracy atmegi z zegarem 8Mhz, co sądzą o tym że może powodować błędy w zapisie i skrócić żywotność eeprom a może nawet flash???
Problemz rejestrem adresowym i zapisem do EEPROM polega na tym, ze taka sytuacja moze wystapic przy wylaczaniu zasilania, szczegolnie kiedy nie masz ustawionego BOD. Empirycznie sprawdzilem to w ATMega8, czyli stosunkowo nowym procku. Ustawianie EEADR na nieuzywana komorke po prostu jest bezpieczne i zalecane przez Atmela. Co do zapisu to chyba standardowe...
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....
Witam, można by było zrobić aby jakaś atmega (np. atmega8) odbierała dane (plik txt) po przez podczerwień i zapisywała zawartość pliku na zewnętrznym eepromie (24c)? Plik byłby wysyłany przez podczerwień w telefonie. W pliku znajdowałby się tekst.
pmw -> równie dobrze możesz tego HEXa wgrać programem mkAvrCalculator, wtedy unikniesz jakiejś znowu pomyłki przy wpisywaniu z linii komend w konsoli. Wystarczy wejść w jego zakładkę "Programator" i tam masz wszystko do zapisu do pamięci FLASH albo EEPROM czy Fusebitów i Lockbitów albo do odczytu, wg życzenia ;)
wyraźnie jest napisane w dokumentacji producenta – Write/Erase Cycles: 10,000 Flash/100,000 EEPROM – Data retention: 20 years at 85°C/100 years at 25°C(1) Data Retention Reliability Qualification results show that the projected data retention failure rate is much less than 1 PPM over 20 years at 85°C or 100 years at 25°C. flash żyje 10000...
Zamiast używać cyferek do określania bajtów w pamięci eeprom, zadeklaruj sobie dla nich jakieś bardziej przyjazne nazwy. A do zapisu używaj eeprom_update_byte , wtedy aplikacja zapisze dane tylko jeśli uległy one zmianie. [syntax=c]static EEMEM uint8_t e_tor, e_led, e_licznik; ... //odczyt tor = eeprom_read_byte(&e_tor); led = eeprom_read_byte(&e_led);...
Witam, Nie widzę problemu. Czytasz dane z portu szeregowego (bądź z bufora) w pętli. Gdy odczytasz 0xff, to w następnej pętli porównujesz kolejne 6 znaków z tymi, które masz po kolei zapisane w EEPROMie. CRC nie jest problemem, bo przy tym samym numerze seryjnym powinieneś dostać cały czas to samo CRC - można je ew. zweryfikować przy zapisie nowej karty...
wiem, że wewn. EEPROM atmegi8 ma ograniczoną liczbę zapisów i kasowań. Nie wiem jak to jest we Flashu. Nie wiesz ponieważ nie chciało Ci się zajrzeć do dokumentacji. Na pierwszej stronie jest informacja Write/Erase Cycles: 10,000 Flash/100,000 EEPROM Chciałbym zrobić licznik rowerowy z zapisem dystansu. Coś takiego jak w samochodzie jest?
Zapisać np: tak Lcd "Zapis danych !!!" Writeeeprom Hist , 1 Writeeeprom T_pompy , 2 Writeeeprom Hist_pompy , 3 A odczytać tak: Rem * * Odczyt Konfiguracji * * Readeeprom Hist , 1 Readeeprom T_pompy , 2 Readeeprom Hist_pompy , 3
zapis eeprom atmega8 atmega8 zapis eeprom atmega8 zapis
zafira odpalanie mitsubishi falownik regulacja obrót szlifierka
Jak rozkodować wyświetlacz radia Opel Meriva A Podłączenie zaworu EGR w Oplu Astra H: instrukcje i wskazówki