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.
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...
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...
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...
[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.
Zamiast int16_t użyj uint16_t (dla tablicy w eepromie, rzutowanie też jest zbędne)
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 jaki plik wybierasz jako wsad dla EEPROM?
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...
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.
ldi r16,(1<<TWPS0) sts TWSR,r16 ldi r16,18 sts TWBR,r16 ret z tego wychodzi preskaler 160 czyli przy 1Mhz sygnał clk ma czestotliwość 6250Hz. niby nic nie szkodzi że tak wolno ale sprubuj dać wiecej. dodał bym jeszcze ldi r16,(1<<TWEN) sts TWCR,r16 w procedurze inicjalizacji i jakieś jakieś małe opuźnienie. jak bede w domu...
Fonty muszą być w Flash ROM gdyż tak działa kod z biblioteki. Jedyną możliwością jest jej przeróbka - musisz mieć pełną wersję BASCOM AVR i znać kod maszynowy - a wtedy możesz je przenieść w inny obszar pamięci. Jak już będziesz zdecydowany na przeróbkę to w glcdks108.lib znajdź procedurę _gwrite_lcdchar . Bascom Ci nieco ułatwi zadanie procedurą _getbytefromrom...
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.
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, jest wiele tematów na których podstawie stworzysz coś osobistego co pomoże ci. Później możesz śmiało wrzucić to na forum tylko pamiętaj o tych podstawach (konsensatory, masa, AVCC, VCC itd.), które wielkokrotnie były omawiane.
Tak teraz wszystko jest poprawnie.
Witam, problem kompilacji bootloadera powrócił - prosiłbym teraz o wersję 16MHz dla atmegi8, tą z możliwością programowania EEPROMu i LOCKBITów :) W załączniku Atmega8, 16Mhz,9600bps,eeprom,lockbit :wink:.
sprawdź to : lcd_putsf(*text);
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...
Nie napisałeś nic, co mogłoby pomóc rozwiązać problem. Nie wiadomo jakiego typu jest zmienna ramka2, co zwraca funkcja USART_Receive(). Może być to zmienna ośmiobitowa, a jeśli tak jest, to taki token się w niej nie zmieści, choćbyś nie wiem jak się starał. Jeśli token ma długość 6 bajtów, to musisz je odczytać, zapisać np. do tablicy i tą tablicę zapisać...
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ć...
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
Odczytywałeś programatorem zawartość EEPROM? Zacząłbym właśnie od sprawdzenia, czy dane rzeczywiście tam są.
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(..)...
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
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...
Dobrze sądzisz ;)
. 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...
Spróbuj ustawić BOD, też tak miałem gdy go nie używałem.
no to daj (unsigned int *)a w wywołaniu procedur eeprom_xxx
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
EEprom programujesz plikiem *.eep z projektu, jeżeli jest wykorzystywany np. jakieś wstępne ustawienia
Z EEPROM'u nie skorzystasz (WriteProtekt). Pin 2 i 6 dla MAX232 nie poprawione. R1 nie zmieniony. AVCC i AGND nie podłączone. Uczysz się naszym kosztem ... przepatrz pierwszy lepszy PDF dotyczący układu uruchomieniowego dla AVR i dowiesz się jak podłączyć MAX'a, podłączyć prawidłowo RESET i EEPROM.
... A jak się sprawa przedstawia kiedy sam TWI wpisze tam 1, czy przerwanie nie powinno się wtedy wyzwolić?... Powinno , ale pod warunkiem że : flaga I w SREG=1 i flaga TWIE w TWCR=1.Przed opuszczeniem procedury przerwania , należy wyzerować(wpisać 1) do flagi TWINT w TWCR , by uniknąć kolejnego przerwania. Piotrek
A istnieje jakiś sposób programowania przez UART tylko wewnętrzną pamięć EEPROM ? np. w Atmega8 ? Oczywiście chodzi mi o opcję bez bootloadera.
To wytłumaczę to tak. Tak jak w pętli jesst to wskazane zapisuje bity od 0 do 100 potem zostawia pamięć nie ruszoną do 255 i znowu zapisuje 100 bajtów i znowu do 255 nie tknięte i tak w kółko aż do końca pamięci. Podmień te dwie funkcje z tej biblioteki. Błędem w tej bibliotece jest używanie makr "bit_is_set()" do sprawdzania stanu bitu, ponieważ makro...
W pętli głównej ostatni if nie ma end if'a. Napisz mi jaki dokładnie jest to typ pamięci, powinno być jeszcze opóźnienie przy zapisywaniu do pamięci. Jeśli masz w tym układzie wyświetlacz LCD to spróbuj najpierw transmisji po rs w pętli głównej wstaw procedure odbioru znaku i od razu go na wyświetlacz, wtedy będzie wiadomo czy komunikacja z kompem chodzi...
Datashee atmega8 ...write/erase cycles: 10.000Flash/100.000 EEPROM.. czyli 5.000 cykli gwarantowane
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!!
Witam. Zrobiłem schemat piórnika na atmega8, eeprom 24c16, pcf8583, LCD 2*16 i odbiornika ir. A oto link do tematu: http://www.elektroda.pl/rtvforum/topic82...
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...
Zapis do EEPROM jest wywoływany przez zwarcie pinu PD2 (INT0) do masy, co wywołuje przerwanie. Nie jest w przerwaniu które jest wywoływane co 0,125us. --- Pozdrawiam, Michał
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...
A wgrałeś zawartość EEPROM?
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
uint8_t EEMEM uk_mem 1. W tablicy zapisuje wartości hex w formacie '0x00' do '0x0f'. Może lepiej będzie zapisywać je w formacie int 0-15, bo zajmie to mniej miejsca w pamięci? Co to są "wartości hex w formacie '0x00' do '0x0f'"? Łańcuchy znakowe, czy liczby 0 - 15? 2. Zmienna 'czujnik_mem' mówi czy w układ będzie włączony czujnik i przyjmuje wartości...
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...
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. dlatego myslałem że zrobie to tak: będe zapsywać...
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...
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...
Chcesz wpakować program w EEPROM ??? [syntax=bash]-U eeprom[/syntax] Nie wejdzie!!! http://www.ladyada.net/learn/avr/avrdude...
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.
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...
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...
... chciałbym żeby zmienna w EEPROM przy starcie miała wartość np 100 a na razie ma 255. Może jakieś porady? Zaprogramuj ją programatorem lub na początku programu zapisz ją do EEPROM.
Przechowuj dane w pamięci RAM
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...
Zmiana OSCCAL na maksa może spowodować problemy przy zapisie do EEPROM i FLASH. Możesz trochę zrobić wstawek asemblerowych w newralgicznych miejscach programu.
Zbudował już to ktoś??? Ma może ktoś działający rezurektor i mógł by zgrać z niego soft (do pamięci flash i eeprom)???
eesave służy do tego żeby podczas kasowania mikrokontrolera pozostawić zawartość eeproma i ma się to do obecnej sytuacji jakoś nijak . Kolega zapisuje eeprom nastawami i chce wprowadzić do eeproma nastawy początkowe ,które by czytał podczas pierwszego uruchomienia mikrokontrolera po zaprogramowaniu . zapisanie eesave da jedynie tyle że przy zmianie...
Chip Erase kasuje tylko pamieć flash i eeprom a nie fuses które można tylko odczytać lub wpisać nowe. Pozdr. N.
Kontrollerlab. Trochę dziwny, ale idzie się przyzwyczaić. USBasp jest obsługiwany przez avrdude bezproblemowo. Spróbuj skompilowac i wrzucić program z konsoli, dowiesz się czy wszystko jest ok. avr-gcc -O3 -mmcu=atmega8 program.c avr-objcopy -O ihex -R .eeprom a.out program.hex Wrzucenie programu (możliwe że będą potrzebne uprawnienia roota): avrdude...
Tak, ATmega8 posiada wbudowaną 512 bajtów pamięci EEPROM.
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 się upierać przy writeeprom, skoro można zadeklarować sobie zmienną wprost w obszarze pamięci EEPROM i później z niej korzystać prawie tak jak ze zwykłej zmiennej w RAM Dim Zmienna As ERAM Byte a później gdzieś w kodzie: Zmienna = Obroty ' w ten prosty sposób zapamiętujesz w EEPROMIE swoje obroty albo Obroty = Zmienna ' czyli np po starcie odtwarzasz...
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.
tak ale jak to potem do eepromu wpisać
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...
Operacje na eeprom poprawione. Wynik; 7706B. Czy można przenieść znaki specjalne [Chr] do pamięci 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...
Przed kontynuacją realizacji tego projektu proponuję pewien eksperyment. Załóżmy, że dźwięk będzie odtwarzany z prędkością 4000 próbek na sekundę - to połowa częstotliwości z jaką zwykle przesyła się mowę w najsłabszych kanałach. Przy takim tempie odtwarzania, cała zawartość pamięci EEPROM zostałaby odegrana w czasie 128 ms. Proponuję spróbować przyciąć...
Zapis i odczyt z eepromu jest opisany w dokumentacji gcc Nie GCC tylko AVR-libc ;) [url=http://www.nongnu.org/avr-libc/user...
Fakt, pomylilem z EEPROM.
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?
EEPROM 256kb (32KB) został podłączony i uruchomiony poprawnie. Temat zamykam.
Tyle że ja chcę zrobić to na zewnętrznym eepromie. Mógłby ktoś napisać mi kawałek kodu, (w bascomie) który zapisywał by zmienną string przez i2c do zew. Eepromu?
Jak to "+" z "-"??? Co zwarłeś? Piny procka? Wyporwadzenia zasilacza? Mogło sie coś zepsuć, bo mega8 ma dwie pary wyprowadzeń zasilania. Jeśli np. na GND była masa, a na AGND wskoczyło +5, to nie wróże dobrze kości. Ale, skoro da się poprawnie programować EEPROM... to może masz włączone jakieś LOCK BITS?
Zasilacz ma sporą pojemność filtrującą i napięcie spada zbyt wolno.
Małe pytanko a obsługa wyświetlania multipleksowanego jest wykonana w przerwaniu czy w pętli programu po ustawianiu zmiennej F4ms? EDIT: Nie rozumiem, zapis do eepromu wykonuje się 20 razy (zmienna Autoret = 20)
1. Moze nie zapisales danych, a masz fusbity ustawione na kasowanie eepromu przy flashu? Wiec poprzednio zpisanych danych nie ma.
Witam, Od niedawna mam mały problem z zapisem do eepromu typu 24c64. Odczyt działa mi elegancko, ale z zapisem mam już mały kłopot. Próbowałem różnych podejść do sprawy, ale wszystko poszło na marne. Najlepiej zobrazuje to kod programu: Proszę o pomoc, bo już nie mam co wymyślić. O co tak na prawdę mi chodzi. Po wysłaniu porcji danych (jednego bajtu)...
aha no tak po co dzięki za pomoc
Więc w tym momencie mam 2 wyjścia: 1.Zmiana procka na większy. 2.Zewnętrzny EEPROM, bo Atmega8 ma tylko 512 bajtów wewnętrznego EEPROM'a. Co byś polecił w przypadku takiego projekciku?
Dobra, juz sobie poradziłem :) teraz działa :)
U mnie to jest tak: 144, 145 PCF8591 162, 163 PCF8563 160, 161 EEPROM 24LC32A
Mam jeszcze jedno pytanko: Jak zaprogramować wewnętrzny EEprom w ATmega8? W PonyProg wybieram Data memory (wybieram plik jaki ma być zapisany *.hex) daje mu write data memory (EEprom) niby coś zaprogramuje a jak daje mu żeby odczytał co jest w EEpromie to są same FF.
Czyli jeżeli wgram hex do arduino, a z arduino przesle plik .ino do atmegi, to atmega go zrozumie (mimo ze to ino a nie hex) czy nie zrozumie? Czy nie ma tu reguły? Bo nie wiem czy arduino jest też jedna z opcji zapisywania flash i eeprom.
za wolno odlicza czas Chodzi na wewnętrznym generatorze 1MHz. Przestaw FuseBity. Przeglądnij program. Być może, że skasowała się instrukcja zapisująca daną do EEPROM.
Witam Kolegów! Projektuję urządzenie, które z 4-kanałów 10-cio bitowego przetwornika A/D ma zapisywać wyniki co kilkanaście minut i przechowywać je w pamięci EEPROM. Napisałem program w Bascomie AVR na procek ATMEGA8, ale mam jeden problem. Odczytując wyniki z 24C16A pojawiają się na aktualnej pozycji cztery wyniki prawidłowe, ale dodatkowo dopisywana...
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..
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...
Flash: avrdude -p atmega8 -c usbasp -P usb -U flash:w:flash/matrixclock_ht1632_atmega8... Eeprom: avrdude -p atmega8 -c usbasp -P usb -U eeprom:w:eeprom/matrixclock_by.bin:r Fuse: avrdude -p atmega8 -c usbasp -P usb -U lfuse:w:0x24:m -U hfuse:w:0xd1:m
Witam. Przecież w wylistowanym programie masz zapis i odczyt pamięci EEprom. teedd
Ja mam podobny problem. Przy programowaniu Fusebitów na Atmega168P też mi wyskakuje błąd. Ale niemniej fusy programują się poprawnie więc po prostu to ignoruję i odzielnie programuję fusy i flash/eeprom.
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.
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.
Write_to_eeprom(0xAA,adress); //np adres 0xAA; przy daress=0; czekaj ( ile); liczba = Read_from_eeprom(adress); //zwraca mi liczbe zczytana powinno dzialac
Ja korzystam z stk 200/300 z allegro. Wrzucasz plik hex i eeprom.
eeprom atmega8 atmega8 szeregowy eeprom wewnętrzny eeprom atmega8
citroen xsara centralny zamek przetwornica xenon działać zmywarka whirlpool wirnik pompa
wiertarka celma kondensator lenze naprawa
Odpowiedzialność za skrzynki elektryczne w bloku Kocioł Brötje L-UG 25: Lampka z kluczykiem i brak włączenia