Przy zapisie eepromu należy brać pod uwagę że przez 1-5 ms trwa zapis i nic wtedy nie odczytasz/zapiszesz. A tutaj gotowiec: https://github.com/jnk0le/AVR-I2C-libs/b...
Raczej tak. [syntax=c]uint8_t eeSEast EEMEM = 00; uint8_t s; eeprom_write_byte(&eeSEast, s); // zapis do eepromu s = eeprom_read_byte(&eeSEast); // odczyt z eepromu [/syntax]
Pod koniec pętli inkrementujesz b potem w if sprawdzasz temp[b) które nie istnieje ponieważ dopiero po tym kroku je wyczytujesz z eepromu
Nie ma bufora. Operacja (od wywołania funkcji do jej zakończenia) trwa tyle, ile potrzeba na zapis do EEPROMu całego bloku danych podanych w argumencie. Dla przykładu, wywołujesz zapis: [syntax=c]#include <EEPROM.h> void setup() { uint8_t var[5] = {1,2,3,4,5}; EEPROM.put(0, var); } void loop() {}[/syntax] Wtedy kompilator tworzy funkcję z szablonu...
Wrzucam kod realizujący w/w założenia. Obsługa enkodera, to funkcja pinChangeINT(). Jak widać, to kilka linijek kodu. - Na starcie program zakłada, że roleta jest na górze, co oznacza PWM=100%. Zjeżdżając w dół PWM zmniejsza się proporcjonalnie. Po napotkaniu endstopu (sygnał zwarty do masy) program uznaje, że roleta zjechała do samego dołu. - Przy...
Masz preskaler ustawiony na aż 256 więc przeładowywanie Timera nie powinno powodować błędów. A wyliczyłeś dobrze. A masz rezonator kwarcowy 8MHz? Zapis do EEPROMu jest sprzętowy więc nic mu nie będzie przeszkadzało. Zliczanie do 2500 też nie jest specjalnie trudne. A zawsze możesz też użyć dwa przerwania. Jedno co 400us do multipleksowania a drugie...
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
Jesli zapis jednego znaku do eepromu zajmuje 10ms to musisz wysylac, dane z pliku porcjami inaczej pogubisz dane. Zapis na karte byl o tyle dobry ze spokojnie moglem zapisac 512 bajtow, podczas gdy dane zapisywaly sie w buforku, czyli zapis na karte byl mniejszy niz 512ms (dobior danych).
"Dane jakie będę obierał po CANie nie zawsze będą miały prawidłowy format ramek CAN (często będą zakłócenia lub niepełne ramki)." Magistrala CAN została zoptymalizowana pod kontem arbitrażu, kontroli błędów, odporności na zakłócenia. Ramki są zabezpieczone sumą kontrolną CRC. Jak dobrze pamiętam prawdopodobieństwo odebrania błędnej ramki szacowane jest...
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 ;)
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...
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...
To w tym złego, że ilość zapisów do EEPROM jest ograniczona. Zapis do RAM jest problematyczny, bo co jak wysiądzie zasilanie? Trzeba robić sygnalizację i podtrzymanie na czas zapisu danych do EEPROM i specjalną obsługę tej sytuacji w programie. Dlatego albo zastosuj programowe rozwiązanie - wear leveling, albo wsadź pamięć FRAM.
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...
Duży filtr na zasilaniu A po co? Wystarcza tylko dioda shottky'ego+ mały supercap 1F albo duży zwykły i sprawdzanie czy jest napięcie przed diodą. Ale czy to tańsze, szybsze i bardziej niezawodne niż bateria i watchdog? :) Szczególnie jak się A/D do czego innego chce wykorzystywać..
Procesor PCA84C640 lub podobny. Zapis nastaw: Ustawić żądane nastawy pilotem, w klapce TV nacisnąć STORE, na pilocie nacisnąć PP i w klapce wcisnąć STORE. Co do AV to polecam schemat i o ile dobrze pamiętam analizę pinu 8 złącza EURO. 12V aktywuje tryb AV. Pozdrawiam Ps. Jeśli nie pomoże to będzie trzeba przeglądnąć zasilanie 5V i inne oraz elki bo...
Proszę bardzo! Wersja minimalna - zapamiętywanie jednej zmiennej na F0. No fakt, aż 36 wierszy. Nie no błagam... nie rozśmieszaj mnie. Chodziło o kod który dla DOWOLNEJ ilości zmiennych (oczywiście w granicach rozsądku tak aby wszystkie mieściły się w emulowanym EEPROMie) pozwala NA ŻĄDANIE odczytać/zapisać WYBRANĄ zmienną. A ty wrzucasz tu jakieś...
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ą...
Help bascoma już czytałem. Co w tym kodzie jest źle? Kolejność bracie , kolejność.Ponieważ w Twoim kodzie nie ma nigdzie instrukcji skoku do funkcji/podprogramu , to uC wykonując program po kolei , włazi do ... Sub Write_eeprom(byval Adres As Byte , Byval Value As Byte) I2cstart I2cwbyte Addressw I2cwbyte Adres I2cwbyte Value I2cstop Waitms...
(at)MajsterXXL , pozostali koledzy Wrzuciłem nową rewizję radia - 3.11, zmiany to: zastąpiłem funkcje EEPROM trzymającą tablice stacji zapisem do pamięci PSRAM. Mam wrażenie, że radio działa szybciej ale może to tylko wrażenie. Swoja drogą Majster wydaje mi się, że EEPROM nie działał bo był błędnie zadeklarowany. Było: EEPROM.begin((MAX_STATIONS *...
Komplikacje z utworzeniem zmiennej. (Microchp Studio, AVR128DA32) Pokrótce: Odmierzam czas . Wynik wpisuję do EEprom-u , wartość 24 bity Chcę edytować w/w wartość, wpisuję ja do zmiennej "wartosc32" i błąd : zmienna "wartosc32" umieszczana jest pod adresem 0x940C Gdy zaglądam do pamięci- nic nie jest nadpisane ( czyli "??" ) Odczytanie wartości z EEpromu...
Po nadpisaniu eepromu MCU przestał działać, teraz nawet nie działa jak przywrócę mu oryginalny eeprom z którym działał. Bity konfiguracyjne się pozmieniały teraz na code nie ma blokady ale jak zczytuje to jest pusta, rozumiem że program uleciał bez powrotnie?
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)...
Mam mały problem - nie potrafię przenieśc kodu z bascoma do avr c (eclipse). Tzn, wiem ze nie przeniosą go 1:1 chodzi mi raczej o ogólne zasady, szkielet: chodzi o zapis do pamięci eeprom stanu licznika - licznik sie zmienia przy pomocy przycisków góra/dół - przy wyłaczeniu zasilania oczywiście jego zawartośc jest kasowana. Oczywiście zapis przy każdej...
W tym temacie prosimy umieszczać informacje i problemy związane z działaniem poniżej wymienionych aplikacji. Link do starego tematu JAF-a podwieszam http://www.elektroda.pl/rtvforum/topic85... DCT3 FEATURES: - wgranie flasha - zmiana języka/oprogramowania - odblokowanie SIMLOCK - naprawa/odbudowa IMEI'a - reset ustawień - reset kodu zabezpieczającego...
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)
Witam Mam problem przy zapisie do eepromu wewnętrznego ATmegi32. Problem jest w tym, że podczas zapisu do eepromu uC się "gubi" a dokładnie "gubi" się przerwanie do obsługi klawiatury PC co praktycznie uniemożliwia poprawne odczytanie wciskanych na klawiaturze klawiszy. Jest to prawdopodobnie spowodowany dość długim czasem zapisu gdyż przy zapisie 5...
Sprostowanie, bo gdzieś dzwoni, ale nie do końca wiadomo gdzie. Oprogramowanie układowe dysków składa się z wielu modułów odpowiadających za różne rzeczy. Zawiera m. in. kod wykonywalny, ale też różnego rodzaju moduły parametryczne, zazwyczaj indywidualne dla konkretnego dysku, jak np. listy defektów i translator odpowiadający za tłumaczenie adresów...
Witam jestem raczkującym programistą 90S213 w BASCOMIE Jak narazie idzie mi niezle ale chcialbym zapisać pewne dane w wewnętrzej pamieci eprom (by po restarcie porcka moglbym korzystać z zapisanych danych) niestety niewiem jak to ugyść. Pewnie tu chodzi o rejestry EEDR POMOCY Z gory dziękuje
Jak można w 90c2313 lub podobnym Procku zapisywać do wewnętrznego epromu dane chodzi mi o krótki listing wyglądać to ma tak Fragment jak to ma działać Do Treść programu skoki do podprogramów ……….. ……….. ………. O ten fragment na dole proszę o wyjaśnienie ,nakierowanie lub podanie przykładowego kodu...
Jeśli te funkcje zwracają status, to proponuję sprawdzać jaki dokładnie - DATA_EEPROM_Unlock(), DATA_EEPROM_Lock(), a zapewne też przez FLASH_ClearFlag(). nic nie zwracaja, usatwiaja tylko rejestry Dodano po 25 Zapomnialem napisac o jeden ważnej rzeczy, wszystkie opisane problemy wystepują gdy program głowny jest wykonywany z pod adresu 0x8003000,...
Przy zapisie do EEPROMU w Bascomie nie musisz wyłączać przerwań. Funkcja WRITEEEPROM robi to sama, ale READEEPROM już nie wyłącza przerwań :)
Do tematu było kilka pytań odnoście sposobu rozwiązania problemu. Dlatego podaję gotowe rozwiązanie. [syntax=c] //nvmctrl_status_t void eeWriteByte(uint16_t eeprom_adr, char data) { // tu musi być przekazny adres w eepromie po dodaniu start_eeprom mamy adres komurki //a tak tworzymy adres w EEpromie // uint8_t EEMEM eBORF = 0; // const uint16_t veBORF...
Witam. Po wielu próbach udało się zrobić zapis i odczyt z EEPROMU na PCB EVALA.
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...
Udało mi się wreszcie zapisać i odczytać 16 bitów w eepromie, zrezygnowałem z funkcji, oraz uprościłem instrukcje do niezbędnego minimum: [syntax=c]//reklaracja zmiennych uint32_t address = 0x8080014; //adres eepromu, poczatek jest pod adresem 0x8080000, ten adres to 0x8080000 + 20 uint16_t data_read = 0; //dane do odczytu dwa bajty uint16_t data_write...
Ta biblioteka to jakiś żart. Po jakimś czasie wyszukiwanie wolnego miejsca zajmie kilka minut zanim cokolwiek zapisze. Są szybsze sposoby niż sprawdzanie pliku sektor po sektorze. Do śledzenia ostatnio zapisanego miejsca wypadało by użyć EEPROMu albo FRAMu. Dodatkowo buforować zapis i zapisywać pełne sektory. "disk_initialize()" po zapisie dla zmylenia...
Od siebie dodam że często mi się przeprogramowywał EEPROM w Atmegach pracujących w środowisku energetycznym (styczniki 3-fazowe na około 50A, bez gasików). Program nie miał w sobie funkcji zapisu EEPROMu więc to nie był wysyp programu i pomyłkowy zapis śmieci, a rzeczywista samoczynna zmiana zawartości (EEPROM był zapisywany programatorem a procesor...
Czas zapisu Eepromu wynosi typowo 2,5-4ms. W tym czasie nie powinny byc dokonywane zadne inne operacje na pamieci Eeprom. Informacja o zakonczonym zapisie znajduje sie w rejestrze Eecr (bit 1). Wyzerowanie tego bitu = koniec zapisu Po instrukcji writeeeprom mozesz dac polecenie: bitwait Eecr.1, reset wtedy program bedzie zatrzymywany jedynie na czas...
Niestety datasheet Attiny13 i Attiny13A mówią tylko o możliwości zablokowania zapisu, zapisu i odczytu obu pamięci (Flash i EEPROM) na raz tymi samymi fusebitami, co oznacza, że nie będziesz w stanie zablokować Flasha i mieć możliwość zapisu EEPROMU. Jedyna opcja to programowy zapis odpowiednich wartości, choć może to być problematyczne przy ograniczeniu...
Ja nie sprawdzałem Twojego projektu pod względem działania, tylko czy działa zapis do eepromu w czasie programowania procesora.
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
Zapis do eepromu jest raczej wolny wiec predkosc tej transmisji ma znaczenie. Pozdro Dexter
http://obrazki.elektroda.pl/7154876600_1... Boberov Unbelievable Boot Loader V0.1 2013 Na wstępie skrócone informacje na temat projektu którego szerszy opis znajduje się w dalszej części tekstu. Program bootloadera przeznaczony jest dla ATMEGA8 (po minimalnych zmianach każdy AVR z wystarczającą ilością pamięci), umożliwia programowanie...
Witam. Mam takie pytanie, poniewaz uzywam pameici eeprom, a w nocie katalogowej od atmega16 pisze, ze EEPROM ma trwalosc 100k cykli. W moim programie chce aby jedna zmienna byla pameitana po wylaczeniu zasialnia i ponowanie wpisywana po zalaczeniu. Odczyt z eepromu mam wykonany raz na pcozatku programu, zas zapis pojawia sie za kazdym razem gdy wchodzi...
Witam wszystkich. Mam problem z zapisem zmiennej typu word do eepromu procesora. Otóż chcę zapisywać rok w eepromie, ponieważ po odłączeniu zasilania rok kasuje się do ustawienia początkowego. W moim przypadku jest to YEARBASE=2012. Kostka to PCF8583, która wg noty nie ma "swojego" zapisu roku. Do eepromu zapisuję inne dane które działają, natomiast...
Czy przypadkiem między zapisem a odczytem nie powinieneś sprawdzić czy eeprom nie jest zajęty? Zapis jakby nie było trwa kilka milisekund. Konkretnie eeprom_busy_wait(); .
Witam, Zapisz_buffor to funkcja z ksiazki tmf. Zapisuje ona cyklicznie do buffora skladajcego sie z 1000 komorek eepromu kolejne wartosci licznika. Program mam napisany w nastepujacym stylu: [syntax=c]if((trzymam_PD0)) { zapisz_bufor(licznik++); zmieniam_PB0(); //na stan przeciwny w stosunku do PD0 //PD0 jest filtrowane przez 100nF i 4,7kOhm, nie ma...
Witam, potrzebuję co minutę zapisywać zmienną w pamięci EEPROM. Ile czasu "teoretycznie" pamięć będzie można użytkować? Czy ilość cykli zapisu jest taka sama do odczytu? Czy jeżeli wykonuję tylko zapis co minutę od ilość cykli odczytu również ulega zmniejszeniu ? Informacja zawarta w datashecie. Tylko zapis skraca życie eepromu a raczej danej jej komórki.
Problem w tym, że docelowo zapis do eepromu i tak będzie musiał być wykonywany kilka razy na sekundę, ponieważ w razie zaniku zasilania wartość zliczeń musi zostać zapamiętana, a zliczenia będą występować właśnie z częstotliwością kilku Hz.
Ale my mowimy o EEPROM, a nie FLASH, wiec twoje wgrywanie programow ma sie nijak do tematu. Co do uszkadzania EEPROM przez zapisy FF to owszem, uszkadza, jesli zapis jest poprzedzany kasowaniem komorki. Same zapisy bez kasowania EEPROMu nie uszkadzaja.
...Ps. Tak, już dla ścisłości to skoro do tej pory nie używałem tej pamięci to czas to zrobić. A przy okazji to czy zmienną typu STRING też tak samo łatwo tam zapiszę...? To działa ze zmienną dowolnego typu :D Ijeszcze jedno podejście do tematu.. Napisałem kod z uwzględnieniem Twoich uwag Piotrek tzn: Dim x As Eram Single Kod się skompilował i jest...
zapis wewnętrznego eepromu zaprogramowanie eepromu zawartosc eepromu
ładowania scania akumulator pomiar prąd oscyloskop skrzynia biegów corsa
zagłuszacz sygnału pralka frania
Komunikat "Załóż wylot do kawy" w Siemens EQ.9 Lokalizacja grzałki w pralce Bosch WLO20260PL/01