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...
A jaki plik wybierasz jako wsad dla EEPROM?
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++;}...
C_rtd_i = eeprom_read_word(&C_rtd[i]); 4\/3!!
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.
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()"
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.
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...
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...
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ć...
Tak teraz wszystko jest poprawnie.
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
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...
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
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.
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...
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...
EEprom programujesz plikiem *.eep z projektu, jeżeli jest wykorzystywany np. jakieś wstępne ustawienia
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(..)...
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...
A istnieje jakiś sposób programowania przez UART tylko wewnętrzną pamięć EEPROM ? np. w Atmega8 ? Oczywiście chodzi mi o opcję bez bootloadera.
Zmiana OSCCAL na maksa może spowodować problemy przy zapisie do EEPROM i FLASH. Możesz trochę zrobić wstawek asemblerowych w newralgicznych miejscach programu.
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
Chip Erase kasuje tylko pamieć flash i eeprom a nie fuses które można tylko odczytać lub wpisać nowe. Pozdr. N.
Chcesz wpakować program w EEPROM ??? [syntax=bash]-U eeprom[/syntax] Nie wejdzie!!! http://www.ladyada.net/learn/avr/avrdude...
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...
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...
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...
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
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...
niestety to co poradziłeś mirekk36 nie działa tak jak bym chciał bo gdy próbuje tą zmienną odczytać za pomocą funkcji: void eeprom_read_block (void* dst, const void* src, size_t n) to jako wynik na wyświetlaczu otrzymuje NAN co raczej świadczy, że to odczytałem nie jest zapisanym floatem
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...
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...
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...
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...
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! problem jest tego typu, że ten program nie działa $regfile "m8def.dat" $crystal = 1000000 $eeprom Data 60 , 50 , 40 , 30 , 29 , 28 , 27 , 26 , Data 25 , 24 , 23 , 22 , 21 , 20 , 19 , 18 , Data 17 , 16 , 15 , 14 , 13 , 12 , 11 , 10 , Data 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 Dim Volum As Byte Dim List As Byte Config Scl = Portc.5 Config...
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 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...
Witam. Mam pytanie i prośbę o pomoc zarazem. Mam w zamyśle "stworzyć/odszukać" w Borlad C++ pulpit, w którym uzupełniało by się tabele albo poprostu pola edit. np.: Nr. Wartość (0-255) 001 - 123 002 - 035 003 - 224 --- --- --- Następnie tak uzupełnioną tabele po kliknięciu w button poprzez RS232 chciałbym umieścic w pamieci eeprom mojej atmegi8, z zachowaniem...
Witam, Mam następujący dylemat: używam zmiennych zadeklarowanych w pamięci eeprom ATMEGA8, odczytuję zadany czas i porównuję z rzeczywistym - zastanawiam się czy nie powinno się kopiować danych z eeproma do zmiennych w obszarze ram i operować na nich. Dla bezpieczeństwa kopiować dane z eeproma do ram na przykład co minutę. Jak powinno się to robić zgodnie...
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...
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...
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...
atmega8 eeprom atmega8 szeregowy eeprom wewnętrzny eeprom atmega8
zmiana klucza win10 dekoder telewizja kablowy linksys dioda internet
wkrętarka milwaukee depollution system faulty peugeot
Wymiana uszczelki pod głowicą Renault Scénic 1.9 dTi/dCi 2000 diesel – procedura, koszty, wskazówki Agregat prądotwórczy Honda, Fogo – skutki złego podłączenia wtyczki przedłużacza, uszkodzenie prądnicy i AVR