W wyniku kompilacji Twojego programu powinny powstać dwa obrazy pamięci. Jeden dla pamięci flash mikrokontrolera - zawiera on kod programu. Drugi dla pamięci eeprom mikrokontrolera - zawiera zawartość pamięci eeprom - w tym wypadku jest to liczba 3. Programowanie pamięci eeprom to po prostu wgranie tego wsadu. Z jakiego środowiska korzystasz? Np. w...
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.
Na początek proponuje darować sobie TSOP1736. Chyba, że masz gwarancję że w okolicy nikt nie będzie używał żadnych pilotów podczerwieni. Wszystkie chodzą na 36 kHZ i będą wzbudzać lub zakłócać twoje urządzenie. Lepiej zastosować jakiś układ IRDA i zestawić prostą komunikację szeregową na UART. Masz wtedy jeden port szeregowy w PC i drugi port szeregowy...
A jaki plik wybierasz jako wsad dla EEPROM?
C_rtd_i = eeprom_read_word(&C_rtd[i]); 4\/3!!
1. Co to za funkcja "substr4"? Pomyłka przy przepisywaniu? 2. Jak zwalniasz pamięć przydzieloną przez malloc? Jeśli zapomniałeś, to będzie kaszana. 3. "strcmp(*id_1,*id_2)" -> id_1 oraz id_2 to tablice. Odwołania do nich traktuje się jak wskaźniki do pierwszego bajtu *id_1[0], więc powinno być "strcmp(id_1,id_2)" 4. Na twoim miejscu napisałbym samodzielnie...
1. Włącz BOD'a w fusebit'ach 2. Dla pewności omiń np 8 pierwszych komórek EEPROM'u i nic do nich nie zapisuj.
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()"
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.
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++;}...
Tak teraz wszystko jest poprawnie.
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...
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
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
Ten powinien działać musisz wszystko wykonywać w odpowiedniej kolejności. A wspak to on może też czytać sensu to nie będzie miało (2 znacznie nawet objaśnienie :D )musisz zmienić na adres-1, kierunek musi być dodawany zakres adresu dla zmiany kierunku zamienione miejscami i adres musi się zaczynać na 80. A Pętla for next jest tylko po to aby wykonać...
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...
EEprom programujesz plikiem *.eep z projektu, jeżeli jest wykorzystywany np. jakieś wstępne ustawienia
No faktycznie. Nie zwróciłem na to uwagi. Jeżeli elementem fontu jest kod, to nic z tego. W pliku font nie ma kodu - są tylko dane. Kod jej wyświetlania jest w bibliotece. Co zresztą napisałem wcześniej. Naddatkiem w pliku font są 4 początkowe bajty: 0 : ilość bajtów na linię czcionki (X) 1 : wysokość czcionki w liniach (Y) 2 : rozmiar definicji jednego...
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(..)...
A istnieje jakiś sposób programowania przez UART tylko wewnętrzną pamięć EEPROM ? np. w Atmega8 ? Oczywiście chodzi mi o opcję bez bootloadera.
Masz na myśli książkę „Programowanie mikrokontrolerów AVR w języku BASCOM”. Mam fajna. Kilka pytań odnośnie samego układy: 1.Jaki zegar to taktuje, 4, 8 MHz. 2.Po co ci zewnętrzny EEPROM jak ATMEGA8 ma w sobie 512B, co przy kompresji danych ASCII daje 576 znaków tekstu. 3. LCD 16*2 jest za wielki lepiej 8*2, będzie to łatwiej schować. Dodaj...
Zmiana OSCCAL na maksa może spowodować problemy przy zapisie do EEPROM i FLASH. Możesz trochę zrobić wstawek asemblerowych w newralgicznych miejscach programu.
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...
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
Chcesz wpakować program w EEPROM ??? [syntax=bash]-U eeprom[/syntax] Nie wejdzie!!! http://www.ladyada.net/learn/avr/avrdude...
Chip Erase kasuje tylko pamieć flash i eeprom a nie fuses które można tylko odczytać lub wpisać nowe. Pozdr. N.
Odpowiedź znajdziesz w danych układu. Te 2.56 V ma bardzo dużą tolerancję. Nie można polegać na tej wartości. Jeśli 5V o dokładności 2..5% podzielisz dzielnikiem 1%, to i tak będziesz miał dokładność 2..5%. Jeśli pomiar ma być dokładny - albo użyj źródła napięcia odniesienia (np. TL431), albo przynajmniej kalibruj każdy uC przez zmierzenie Vref i zapisanei...
Czyli tak - dajesz Atmelka zależnie od potrzeb ATTiny2313, ATMega8 lub ATMega16 /8515/8535 itp...(portów hohohoho), do PC łączysz się przez: 1. SPI/USI<>LPT (wersja nie wymagająca dodatkowych elementów), PC pracuje jako MASTER, ATMEL jako SLAVE (ten układ składa się TYLKO z procesora, jakiegoś kondensatorka odsprzęgającego zasilanie) 2. UART<>RS232...
Programujesz tylko Atmegę, a w jej sofcie zawierasz komunikację z RFM. Sam moduł radiowy nie posiada (chyba) pamięci EEPROM itp, więc po każdym włączeniu musi dostać sekwencję konfiguracyjną, a następnie ramki danych.
Kolego (at)sp5gbw o ile rozumiem to program ma działać tak: - po uruchomieniu wczytuje z EEPROM ilość cykli (od 2 do 30) i generuje je czyli generuje przez czas Ta sygnał 5kHz z odstępem Tb między sygnałami. - po wygenerowaniu tego sygnału sprawdza stan klawiatury w oczekiwaniu na zmianę ilości cykli. Jeżeli taka nastąpiła zapisuje ją do EEPROM. Zweryfikuj...
http://obrazki.elektroda.net/43_12786005... Atmega fusebit doctor, jak sama nazwa mówi, to urządzenie do naprawienia nieumiejętnie przestawionych fusebitów w mikrokontrolerach z rodziny AVR. Największymi problemami jest ustawienie nieprawidłowego źródła zegarowego (fusebity CKSEL), wyłączenie programowania SPI (fusebit SPIEN), lub ustawienie pinu...
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...
Kompilowane pod asemblerem AVRasm2 od najnowszyego AVRStudio. Przeznaczenie pliku eep jest do wewnętrznego EEPROM mikrokontrolera, bez jego zaprogramowania robocik ma prawo wariować, z tego co wyczytałem w pliku źródłowym. To nie jest pod WinAVR, ewentualnie avrdude, ale trzeba czytać dokumentację jak się programuje EEPROM. Polecam : http://www.amwaw.edu.pl/~adybkows/elka/i...
musisz ustawić FUSE bity na kwarc zewnętrzny domyślnie jest wewnętrzny RC o czestotliwości 4MHz. Jak masz STK 200/300 i dajesz programuj procesor to masz zakładke rom eeprom i fuse bity a tam znajdziesz które to sa bo niepamietam . Pozdrawiam
No właśnie jeśli w programie przed pętlą główną nadam wartości zmiennym w eeprom np. zm_eeprom = "jakis tekst" to po resecie program wystartuje od nowa i zapisze z powrotem wartości początkowe w programie do eeprom ? posłuchaj - jeśli potrzebujesz zapisać domyślnie zm_eeprom = "jakis tekst" to robisz to tylko wtedy jeśli wszystkie komórki tej zmiennej...
Podobny zestaw edukacyjny oferowało AVT - zestaw uruchomieniowy na bazie 2051 (MCS51 do BASCOM College). DSM to był w zasadzie pełnowartościowy komputer... miał pamięć EEPROM, a w niej programy - edytor ASM i komunikacyjny, ponadto EEPROM zawierał podprogramy realizujące różne często wykonywane zadania (coś ja BIOS w PC). Cała frajda z budowania układów...
nie zmniejszenie przyciskow wiele ci nie pomoze zaoszczedzisz tylko kilka pinow portu . wg mnie atmega8 powinna ci wystarczyc policz dokladnie ile ci potrzeba pinow do podlaczenia peryferii a jesli chcesz cos wiekszego to kup atmega162 ma on 4 pelne porty i 3 linie portu E a wiec masz 35 lini we/wy. Pamiec 16kb wiec na pewno wystarczy a koszty porownywalne...
Do przeładowania Timer'a1 używaj: Int_timer1: Load Timer1 , 62500 [...] Return Mam jeszcze jedną regułę z przeszłości aby nie używać obsługi pamięci EEPROM w obsłudze przerwań (starsze wersje BASCOM'a przy rozbudowanych programach powodowały błędne działanie programu). Stosuję to do dziś dnia i nie mam zamiaru sprawdzać to w nowszych wersjach...
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...
http://obrazki.elektroda.pl/6006020500_1... Witam Jestem uczniem 2 klasy liceum, z elektroniką łączy mnie tylko hobby. Chciałbym przestawić mój projekt wykonany na konkurs Gra Retro. Jest to remake gry Tetris. Jako wyświetlacz użyłem monitora VGA (w tym wypadku LCD) oraz pada od Pegasusa jako kontroler. Całe oprogramowanie zostało napisane...
Napisze ci jak bym to zrobil i przemyslisz sobie sprawe Dodano po 5 1.Zrob pomiary - tak z 120 co 0.2 , 0.4V 2. Wyniki zapisz do eproma z tiny2313 - od komorki 1 a nie od zerowej w epromie (patrz data sheet) zapis taki ze: a) w komórce 1 laduje najmniejszy wynik a w 121 najwiekszy - przy czym wyniki zapisywane sa liniowo - taka aproksymacja odcinkowo...
http://obrazki.elektroda.pl/2109173800_1... http://obrazki.elektroda.pl/1734931900_1... Witam wszystkich serdecznie. :) Jakiś czas temu opublikowałem temat z przeróbką para 36 na para diodowego. Głównym założeniem było udostępnienie wzoru płytki pod diody oraz pierwowzoru sterownika. Tym razem chciałem zaprezentować...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
http://obrazki.elektroda.pl/2929008000_1... Witam. Po raz pierwszy zdecydowałem się przedstawić na łamach forum swoją konstrukcję. Chciałbym zaprezentować swój pomysł na Termometr Samochodowy. Podczas upalnego lata zauważyłem że po zainstalowaniu instalacji gazowej moje auto ma bardzo duże wahania mocy silnika w zależności od temperatury...
tak jak mówił zumek - zapomnij o jakimś wrzucaniu kodu programu do eeprom lub zewnętrznej pamięci flash - bo to (powiedzmy) niemożliwe ;) tak więc zostają ci tylko 2 drogi: 1. Optymalizacja kodu - czyli poskracanie pewnych rzeczy. Zamiast pokazywać cały kod - pokaż może niektóre fragmenty, które sam uważasz że już dałoby się jakoś może poskracać - tylko...
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...
Chodzi mi o sprawdzone rozwiązanie sprzętowe tym bardziej, iż nie mam wolnych portów w mikrokontrolerze a chcę zwolnić użytkownika z potrzeby zapisywania wrażliwych danych przed wyłączeniem zasilania. Oczywiście można by zastosować RTC (z RAM) i podtrzymaniem lub FRAM ale problem braku wolnych portów wyklucza to rozwiązanie jak... i zapewne wszystkie...
Siemka! Nie ma większego problemu i z paroma czujnikami. Rozwiązania tego problemu są conajmniej dwa. 1. Wrzucasz czujniki każdy na innym pinie portu mikrokontrolera i odczytujesz wynik korzystając właśnie z algorytmu dla jednego czujnika. Jedyna kwestia to tylko sekwencyjne przełączanie interface'u 1-Wire pomiędzy połączonymi z czujnikami pinami portu....
http://obrazki.elektroda.net/48_12524920... Witam. :D Chciałbym zaprezentować interfejs diagnostyczny do pojazdów marki Fiat wyposażonych w silniki z jednopunktowym wtryskiem paliwa (SPI) głównie sterowniki IAW16F (seicento/cinquecento/punto). Pełna lista pojazdów znajduje się poniżej. Dzięki zastosowanemu wyświetlaczowi LCD urządzenie nie...
Koelgo bober a jak wyczytałeś że mozna wyłaczyć ISP enable. W którym dokładnie bajcie jest ten fuse? Tak się zdarza że poszukałem na elektrodzie info, kiedy moja atmega nie chciała łapać z ISP, i wtedy zacząłem kopać w dokumentacji programatora http://elm-chan.org/works/led2/report.ht... a potem porównałem to z wymienioną przez kolegę tabelką. Są w...
eeprom atmega8 atmega8 szeregowy eeprom wewnętrzny eeprom atmega8
renault laguna migająca kontrolka vestel 17ips72 sprawdzenie hydrostatu electrolux
frequency mixers frequency mixers
Cewki zapłonowe 2.0i 16V 139KM – wpływ na moc i ciśnienie oleju Spadek sprężania do 8 atm na 2 cylindrach – uszczelka głowicy, zawory, LPG, diagnostyka