a jeszcze moge dodac jak to zapisac np do komórki pamieci nr100 w eepromie a potem to odczytac z tejze komórki czyli w skrócie adresowanie ? z góry wielkie dzieki No co Ty , żartujesz :?: eeprom int *eeptr; void main(void) { char a; a=0x11; eeptr=100; *eeptr=0x33; a=*eeptr; for(;;); } Piotrek
...Nawiązując do sugestii kolegi wrzuciłem linijki do programiku i na nieszczęście nawet wyświetlacz lcd przestał wyświetlać, a tylko mruga pierwsza linijka. Nie no , jasnowidzem to nie jestem :D Poza tym , to tylko "pomysł na ..." , a nie gotowiec.Pokaż(załącznik) cały kod , to może cosik się zaradzi :D Piotrek
Należę do osób, które za wszelką cenę starają się same pogłówkować i znaleźć rozwiązanie Jedyna prawdziwa informacja, jaką przekazałeś tym zdaniem, to taka, że masz wysokie mniemanie o sobie. Gotowiec dla leniuchów: [syntax=c]static EEMEM uint8_t emode; //rezerwujemy bajt w eeprom ... uint8_t mode=0; //zmienna przechowująca kopię danej z eeprom //odczyt...
Zobacz to : [url=http://radzio.dxp.pl/eeprom/]EEPROM
Są oczywiście takie moduły zespolone z pamięcią. Mozna tam zapisywać i czytac po bajcie, ale można też sekwencyjnie całe łańcuchy i tablice nawet serializatorem. Dwie pierwsze funkcje podpowiem. Wygląda na to ze działaja ;) Możnaby dodać jakieś zabezpieczenia na wypadek braku komunikacji. https://obrazki.elektroda.pl/8549538400_...
Dlaczego w oknie profili jest dostępna (zaciemniona) opcja FLASH i EEPROM ? skoro program i tak niezapsiuje danych związanych z zapisem/odczytem FLASH i EEPROM.
Witam Przeglądałem forum, jednak zastosowane propozycje nie dały rezultatów.. ;/ mam problem z zapisem i odczytem z pamięci eeprom. Jak mają wyglądać te instrukcje poprawnie?? Robię tak(fragment kodu dot eeprom): int i=1; static EEMEM int i_ee; eeprom_write_block(&i, &i_ee, sizeof(i)); eeprom_read_block(&i, &i_ee,sizeof(i));...
Witam. Mam pytanie jak zapisywać/odczytywać dane do/z wew. eepromu uP avr 2313 pod C w WinAvr. Przeszukiwałem forum ale nic pomocnego nie znalazłem, dokumentacja nie na wiele mi sie zda z powodu kiepskiej znajomości jęz.ang. Proszę kogoś obeznanego w temacie o jakiś prosty przykład z zapisywaniem i odczytem zmiennej float do eepromu wewnętrznego.
Bynajmniej nie chciałem urazić w poprzednich postach, jednak, moim zdaniem, dopiero przedostatni post autora tematu konkretnie wskazał problem. Nie znam za bardzo arduino, ale bazując na [url=http://codebender.cc/]kompilatorze online, obsługa eeprom w arduino jest identyczna jak w c. Przykład: [syntax=c]#include <avr/eeprom.h> typedef struct {...
Witam, #include <stdint.h> #include <avr/eeprom.h> static EEMEM uint8_t zmienna_w_eepromie = 'a'; /* po zaprogramowaniu eepromu zmienna ma wartość 'a' */ int main(void) { eeprom_write_byte(&zmienna_w_eep... 'b'); } Pozdrawiam, Dr.Vee
Witam serdecznie. Mam mały problem z zapisem/odczytem eepromu. Przykładowy kod: temp_dol_k1 = eeprom_read_byte(1); ............. ............. ............. eeprom_write_byte(1,temp_dol_k1)... Niby wszystko ok ale kompilator mowie że: ../cos.c:2054: warning: passing argument 1 of '__eerd_byte_m32' makes pointer from integer...
Zapis i odczyt z eepromu jest opisany w dokumentacji gcc Nie GCC tylko AVR-libc ;) [url=http://www.nongnu.org/avr-libc/user...
Funkcja odczytuje bajt z EEPROM, porównuje z bajtem do zapisania i jeśli są różne to zapisuje, jeśli takie same, to przechodzi dalej nie robiąc nic. Ponieważ w XMEGA dostęp do EEPROM jest znacznie bardziej zaawansowany (m.in. możliwość jednoczesnego zapisu całej strony EEPROM i odczytu EEPROM przez region zmapowany w przestrzeń adresową MCU, warto się...
[url=http://bascom.dxp.pl/bascom_dyrekty... opisane dyrektywy miedzy innymi $eeprom i $eepromhex.
Jeśli chodzi Ci o ampersand to działa i z nim i bez niego nie wiem dlaczego tak sie dzieje eeprom_write_block( val1, eeprom_val, 6 ); // zapis do eeprom eeprom_read_block( val1, eeprom_val, 6 ); // odczyt z eeprom Pozdrawiam
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 dlaczego deklarować by zmienną w obszarze pamięci eeporm i odwoływać się do niej. Dodatkowo nie wiem jaki ona ma adres tylko posługuje się adresem tej zmiennej która jest dla mnie nie znana. Czy deklarując zmienną w pamięci eeprom jej adres jest przypadkowy czy zaczyna się od jedynki. Wcześniej znalazłem już rozwiązanie które działa i właśnie polega...
skoro programujesz w C to dlaczego robisz to w taki sposób jak w assemblerze? Przecież są gotowe funkcje które używasz nie martwiąc się jak to się dzieje wewnątrz. w skrócie: //zapis: eeprom_busy_wait(); eeprom_write_byte(); eeprom_busy_wait(); //odczyt: eeprom_busy_wait(); eeprom_read_byte() eeprom_busy_wait();...
Wiec jaki jest czas wyslania na port jednego slowa zapisanego w tych pamieciach, bo w nocie katalogowej znalazem tylko: "Minimum Wait Delay after Writing a Flash or EEPROM Location:..." Musze wybrac z ktorej pamieci odczyt bedzie najszybszy a z AVR-ami dopiero zaczynam. A moze wiecie jak obsluzyc pamiec zewnętrzną EEPROM (zapis i odczyt) ?
Zamieść fragmenty Twojego kodu. Może podczas zapisu rzutujesz int na unsigned char.
DariuszEE, to by trochę kodu zajęło, a programowanie nawet przy niskich baudrate przebiega dość szybko. Ale kto wie, może w przyszłości pomyślę nad tym, chociaż najpierw postaram się dodać potrzebniejsze opcje (np. odczyt i zapis eeprom stronami).
Oczywiście sytuacja tyczy się też odczytu - czy w trakcie wyłączyć przerwania?
. 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...
Nie do końca rozumiem...ale... help? writeeprom, readeprom? dim zmienna as byte at xram *czy coś w ten deseń*...
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.
Zawsze warto skorzystać z opisu nagłówków ze strony projektu AVR-libc: http://www.nongnu.org/avr-libc/user-manu...
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
Sprawa wygląda następująco: Mam Atmegę8, którą programuję w C (avr-libc). Zapisuję 20 bajtów danych do pamięci eeprom za pomocą funkcji eeprom_write_byte pod określone adresy. Następnie, nie wyłączając zasilania, w dalszej części kodu odczytuję te dane przez eeprom_read_byte. Wyświetlam je, wszystko jest ok. Kolejno, wyłączam zasilanie, włączam ponownie,...
W CodeVisionAVR (C) możesz to zrobić tak: deklaracja zmiennej eeprom unsigned int knastawyCRC; i zapis lub odczyt: knastawyCRC = 23; kakas_zmienna = knastawyCRC; BTW to raczej nie używaj komórki o adresie 00 z EEPROM w AVR, bo możesz się nabawić kłopotów;-). W asm trzeba wykonać kilka poleceń (wpisy do odpowiednich rejestrów i ustawienie bitów), ale...
W avrach do odczytu/zapisu zawartości pamięci ram służą funkcje : http://www.nongnu.org/avr-libc/user-manu...
$eeprom - dyrektywa kompilatora, która informuje go, że od tego miejsca dane będą trafiać do pamięci EEPROM. Faktycznie dane te trafią do pliku EEP, którego zawartość podczas programowania zostanie przelana do wewnętrznej pamięci EEPROM układu. Napisa: - Etykieta dla polecenia READEEPROM. Jest to przyjazny zamiennik adresu pod którym dane w tej pamięci...
To jest wskaźnik do EEPROM, czyli adres zapisywanej komóki. E2END to stała zdefiniowana w AVR-libc, zawierająca adres ostatniej dostępnej komórki EEPROM, adresacja zaczyna się od 0.
Procek ma tylko zapisać wartość w EEPROMIE oraz po jakimś czasie odczytać. Chyba za szybko nie jest , 10ms przerwy po zapisie chyba wystarczy... Spróbuję jeszcze zwiększyć czas.
Dzięki, testy na Arduino potwierdzają, że funkcja EEPROM.put() faktycznie czeka aż zapis się zakończy i trwa to ~3,35ms na bajt. Pozostając jeszcze w temacie EEPROM-u, jak to jest z tą ilością cykli zapisu do pamięci? Zauważyłem, że większość uC ma tą wytrzymałość deklarowaną na 100k zapisów, niektóre (np. Atmega88) tylko 50k, ale czy ktoś to w ogóle...
i tak trzeba zrobić podtrzymanie zasilania, bo inaczej zapis może się nie powieść. Co jesli zasilanie padnie w czasie operacji na tej zewnętrznej pamięci? Dwa bloki danych i CRC. Zapisuje się blok 1, następnie 2. Po resece procka wystarczy sprawdzić, który blok ma poprawną CRC i z tego bloku odczytać dane. Dawniej robiłem jak sugerujesz, zapis do eeprom...
(at)mas24 Do tej pory wszystko masz w SRAM, więc możesz to używać jakkolwiek chcesz. Natomiast po skopiowaniu do EEPROM już nie. TFunkcja kol. (at)michalko12 oczywiście kopiuje wszystko do EEPROM, na lokalnej kopii w SRAM ciągle możesz pracować. BTW, o ile dobrze pamiętam działasz też na XMEGA? Tam masz fajnie, bo EEPROM można zmapować w obszar przestrzeni...
Witam. Progamując nie korzystałem z EEPROM, a jeśli już to z zapisu i odczytu i to w bascomie. Tam sprawa jest prosta 2 komendy. Pisząć w asemblerze na AVR chciałbym aby program pobierał dane z pamięci EEPROM. Zdeklarowałem w pamięci EEPROM miejsce od którego mają być dane zapisywane. Następnie muszę wpisać dane - tylko nie wiem w jaki sposób to umieścić...
Za długie pętle lub za krótkie tablice zmiennych.
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.
Czy każde włączenie mikrokontrolera liczone jest jako odczyt tzn. czy jak włączę uC 10 000 razy pamięć FLASH zostanie uszkodzona? Nie, chodzi o programowanie pamięci, a konkretnie jej kasowanie (ten proces powoli uszkadza pamięci) przed ich ponownym zaprogramowaniem. 2.Po co zapisywać dane w pamięci EEPROM? Co to daje? Czy zamiast zapisywać dane w...
(at)tadeko, dużo przykładów w asm jest zawartych w datasheet mikrokontrolerów atmela. Między innymi jest ten o który pytasz, jest również odczyt. Dodano po 9 Daj sobie spokój. Jeśli kolega Tadeko chce uczyć się asemblera, to należałoby mu pomóc i nakierować w odpowiednim kierunku. Przede wszystkim musi zrozumieć, że porównanie asm z bascom nie ma sensu....
Witam! Buduje sterownik do kolektora słonecznego i próbuje rozwiązać problem znikających nastawień przy zaniku zasilania. Potrzebuje wpisać zmienną histerezy do pamięci EEPROM którą będzie można zmienić zależnie od potrzeb. Zaczynam od definicji: static EEMEM uint8_t histereza = 3; Odczyt/zapis za pomocą komend: uint8_t histereza = eeprom_read_byte(&histereza);...
Witam. Na początek chciałem wstawić kawałek programu, a w zasadzie cały, który na tą chwilę kręci silnikiem, wyświetla wartość adc i jest jakiś tam zalążek do obsługi eeprom-ram. Proszę wybaczyć, jeżeli jest to może trochę pokręcone i napisane nie profesjonalnie, ale działa, a na kosmetykę to jeszcze za wcześnie na moim poziomie. Jestem w pracy, więc...
Witam Wiem że może był poruszany już ten temat ale chciałbym zapytać się odnośnie zapisu takiej struktury do pamięci eeprom avr: typedef struct { uint8_t dzien[6]; float temperatura[6][2]; uint8_t tryb[6][2]; }STRUKTURA; czy należy wykonać taki zapis za pomocą funkcji write_block? Odczyt za pomocą read_block? Co by było najlepszym rozwiązaniem?
Witam Sporo jest pytań na temat EEPROMU, ale nie udało mi się znaleźć odpowiedzi, więc przedstawię swój problem. Wykonałem zegar szachowy na ukł. ATmega 8. Wszystko działa poprawnie oprócz zapisu i odczytu pamięci EEPROM. Procedura zapisu nie modyfikuje pamięci, procedura odczytu daje zawsze "0", bez względu na rzeczywistą zawartość. Zapis i odczyt...
nie mam włączonej żadnej optymalizacji (-00) REG->EECR |= 1<<EEMWE; REG->EECR |= 1<<EEWE; żeby zapis się wywołal to druga zmiana bitu musi odbyć się w ciągu 4 cykli zegarowych a tymczasem ten kod skompilowany bez optymalizacji daje w gcc coś takiego: [syntax=asm] 162:ac e3 ldir26, 0x3C; 60 164:b0 e0 ldir27, 0x00; 0 166:ec e3 ldir30,...
Siemano. Jeżeli chcesz umieścić np. tablicę jednowymiarową w sekcji EEPROM to możesz wykonać to w taki sposób const unsigned char Tablica[] EEMEM = { 0x3e,0x51,0x49,0x45,0x3e, 0x00,0x42,0x7f,0x40,0x00, 0x42,0x61,0x51,0x49,0x46, 0x21,0x41,0x45,0x4b,0x31 }; Niestety przy takiej deklaracji pierwszy element tablicy nie będzie znajdować...
Chyba AVR BURN-O-MAT tego nie ma. Ja używam avrdude-gui. [url=http://sourceforge.net/projects/avr... Pozdrawiam
Witam ja też wróciłem do wersji z 2004 - jest jak narazie najstabilniejsza, z tym że jak kompilujesz biblioteke eeprom.h pojawia się komunikat: The functions from <avr/eeprom.h> are not supported on this MCU. i zostaje bez funkcji do zapisu/odczytu EEPROMA. W sumie to już rozwiązałem ten problem - w notach do Atmeli są krótkie procedury zapisu...
Zamiast EEPROM zastosuj FRAM - procedury zapisu i odczytu identyczne a trwałość nieporównywalna - 10^12 cykli zapis/odczyt.
Domyślam się że gdzieś trzeba wpisać procedurę opóźniającą 5ms. Pomiędzy operację zapisu i odczytu bajtu? Z angielskiego jestem noga więc typowe noty katalogowe niewiele mi mówią. Dodane 13.02. Wpisałem procedurę opóźniającą pomiędzy procedurę zapisu i odczytu bajtu i dalej to samo.
To podpowiedz chociaż jak zmienić zapis const uint8_t payload PROGMEM = ...; aby dane zamieszczone we Flash można było odczytać jak z RAM, podobnie jak z EEPROM. Ponoć nowe AVR GCC ma nowe literały, które niezależnie od typu pamięci, gdzie składowane są dane, odczytuje je. W nowszych wersjach AVR GCC wprowadzono kilka ulepszeń ułatwiających pracę z...
W jakim Bascom? Jakiego pliku na PC?? Bascom to język programowania procesora, a jedyne co procesor potrafi to skomunikować się z PC. Po stronie PC musi stać drugi program i to wcale nie napisany w Bascom (Delphi, C, VB, itp.). Jeden program odpowiada za odczyt pliku i wysyłkę danych (ten na PC), drugi (ten w AVR) za przyjęcie danych i ich zapis w eeprom.
Witam, Piszę program na atmege j/w i mam problem z odczytem wartości z eepromu. Napisalem prosty testowy programik: :10000000FFFFFFFFFFFFFFFFFFFFAAFFFFF... :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFF... :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFF... :10003000FFFFFFFFFFFFFFFFFFFFFFFFFFF... :10004000FFFFFFFFFFFFFFFFFFFFFFFFFFF...
Na razie próbuję to zrobić w tradycyjny, "Atmegowy" sposób, gdyż mam to już przećwiczone. Na razie procedurka sprawdza, czy w EEPROMie jest FF (lub FFFF dla 16 bitowych zmiennych) i ustawia wartości domyślne. Jednak po odczytaniu, wartości zmiennych nie sa na swoich miejscach. Wpisuję 5 danych typu uint8_t i 8-elementową tablicę uint_16 t. W której...
Wazniejszy będzie odczyt na początku i stwierdzenie które dane są aktualne Robisz sume z bufora 1 i porownujesz z zapisana w buforze 1 , tak samo dla drugim buforze i ten z wadliwa suma odrzucasz , gorzej gdy oba maja poprawna sume to wtedy albo na podstawie analizy danych stwierdzasz które są nowsze albo na podstawie indeksu dodanego do danych tylko...
4. Blokowy układ pamięci wynika z ograniczonej przestrzeni adresowej. Dany układ nie pozwala na adresowanie każdego bajtu z osobna więc stosuje się bloki np po 64 lub 128 bajtów. Zatem wybierając adres powiedzmy 32, zaglądasz do szufladki w pamięci do której możesz zapisać te 64 lub 128 bajtów. Adres 33 wskazuje na inną "pustą" szufladkę w której jest...
dla zwykłych avr-ków w GCC masz plik nagłówkowy <avr/eeprom.h> - wystarczy do niego zajrzeć i po zawodach (w nim masz właśnie gotowe do tego funkcje) - albo nawet w gogla wklepać i wyjdzie ze 100 podpowiedzi. Nie wiem jak dla twojego procka - ale na pewno zagoglować warto
Czuję się powalony na łopaty..... Piotrek ja nie wiedziałem, że do wewnętrznego eeprom-u można tak bezpośrednio zapisać zmienną SINGLE. Ciągle czytałem o konieczności rozbiórki, a nikt do tej pory takiej prostej rzeczy nie napisał.... Nawet w Pomocy BASCOM-a (tłumaczenie na polski) tego nie ma, ba nawet w książkach na temat AVR "tysz ni ma".... To jest...
lucas234 to Ty jesteś programistą i Ty decydujesz jakiego typu jest zmienna i gdzie ona ma być zapisana, w której pamięci w zależności od założeń urządzenia które programujesz i tego co chcesz osiągnąć, tak dla przykładu: deklaracje zmiennych w których pamięciach maja się znaleźć: [syntax=c] uint8_t a; // zmienna w pamięci RAM uint8_t EEMEM b;// zmienna...
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...
Witam. Pierwsza sprawa rezerwujesz uint8_t a odczytujesz float. Po każdym naciśnięciu przycisku musisz wykona zapis do eeprom-u którego Ty nie robisz.
A tak z ciekawości zapytam - po co wyważasz tzw głową mur albo otwarte drzwi , pisząc własną obsługę zapisu do EEPROM z jakimiś tam oczekiwaniami itp itd itp Skoro w AVR GCC masz gotowe, wbudowane i porządnie działające funkcje do tego celu, gdzie nie trzeba żadnych takich cyrkowych sztuczek robić. Chyba że czegoś nie zrozumiałem.
Pierwszym krokiem jaki zrobiłem to udałem się na stronę producenta tej pamieći . http://www.microchip.com/wwwproducts/Dev... W polu opisanym Application Notes [url=http://www.microchip.com/stellent/i... - Using C to Interface 8051 MCUs with SPI Serial EEPROMs [url=http://www.microchip.com/stellent/i...
Dzień dobry Mam mały problem ze zmianą kolejności adresów czujników DS18B20. Mam tablicę uint8_t z adresami czujników. Każdy adres zajmuje 8 pozycji tablicy. Napisałem menu ustawień z możliwością zamieniania kolejności. W menu po wejściu w wybrany czujnik mogę przypisać mu adres ze "świeżo" przeskanowanej magistrali. Problem w tym, że o ile po zapisie...
Witam, czy fuse EESAVE w ATTiny26 zapobiega skasowaniu zawartosci EEPROM-a w trakcie kolejnego programowania układu czy również blokuje dostęp programu do zapisu/zmiany nowych danych? Chcę umieścić w EEPROM-ie stałą tablicę wartości (tylko do odczytu) i dodatkowo ją zabezpieczyć przed skasowaniem w wyniku np. mylnego zadziałania programu, czy ustawienie...
Witam, Mógłby ktoś sprawdzić, gdzie robię błąd? Chcę zapisać cokolwiek do wew. pamięci EEPROM. [syntax=c]#define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/eeprom.h> #include <avr/interrupt.h> //deklaracja zmiennych int h, m, s, i; //inicjalizacja uint8_t eeprom_val[512] __attribute__((section(".eeprom")));...
Dalej walcze z ta pamiecia! Jedyne co udalo mi sie uzyskac to dzialajaca procedura odczytu... Moze i ona od poczatku dzialala ale w ktoryms momencie zaczela mi odczytywac, ze w komorce pod adresem 1 jest wartosc 13, ktora tam w innym momencie wpisalem... Na wszystkich innych adresach mam FF. Probuje na tysiac sposobow wpisac na miejsce tej 13-stki jakas...
Błąd tkwi wszędzie :) Przede wszystkim - bufor zapisu do EEPROM to w zależności od typu XMEGA max 32 bajty. A więc nie jest tak, że masz zmapowane wszystkie konórki EEPROM do bufora. W danej chwili zmapowana jest jedna strona (max 32 bajty). Bufor zawiera informację, które bajty zostały zmodyfikowane i tylko te są zapisywane do EEPROM po wydaniu polecenia...
Eeee... A po co, skoro i tak zapis do EEPROMu realizowany jest blokowo? A nawet jeśli by nie był, to wystarczy zrobić sobie funkcję, która ten zapis będzie realizowała właśnie w taki sposób? Tak czy siak nie rozwiązuje to problemu autora, ponieważ problem ten jest dosyć skomplikowany [; Ze swojej strony proponowałbym tablicę na takie napisy użytkownika...
Sypie błądami przy kompilacji. Jak zaremuję odczyt to błędów już nie ma, ale nie zapisuje danych do EEPROM. Z eepromu fajnie korzysta się w połączeniu ze strukturami, ale to dla większej ilości danych. Jak potrzeba 2-3 zmienne to robię coś takiego: [syntax=c] #include <avr/eeprom.h> uint16_t x1, x2; //zmienne które należy zapamiętać w eeprom...
http://obrazki.elektroda.net/4_124743447... Witam! Chcialem sie podzielic moja nowa, czysto programowa konstrukcja. Jest to bootloader dla mikrokontrolerow AVR, tym odrozniajacy sie od wiekszosci tego typu programow (chocby ostatnio zaprezentowanego przez kolege mirekk36 AVR Boot Loadera), ze nie potrzebuje dodatkowego programu na PC i przyjmuje...
Przepraszam za kolejny wpis ale teraz borykam się kilkoma innymi problemami mianowicie jednym z nich jest zapis/ odczyt z eeprom sugeruje się informacjami zawartymi w książkach oraz http://www.nongnu.org/avr-libc/user-manu... i w swoim kodzie zapisałem coś takiego Multiple markers at this line - incompatible type for argument...
Czyli po kropce podajesz nr odczytywanego bitu, a możesz wyjaśnić dokładniej jak z zapisem jednego bitu? Nie. Praktycznie odczytujesz caly byte. Pamiec EEprom w AVR jest 8 bit szerokosci, czyli 1 byte. Nawet jezeli potrzebujesz wpisac do pamieci eeprom tylko jden bit, to i tak zabiera to jeden byte w pamieci. Nie ma mozliwosci adresowania tylko jednego...
http://obrazki.elektroda.pl/5385398300_1... Zaprezentować dziś chcę projekt lampki RGB który wykonałem na pracę zaliczeniową z systemów wbudowanych. Moim zdaniem osiągnięty efekt jest zadowalający więc może ktoś będzie zainteresowany wykonaniem urządzenia według mojego projektu. Jako, że jest to pierwszy zrealizowany przeze mnie projekt...
Posiadam schemat płytki AVR, autr twierdzi, że nie da się wykorzystać pamięci EEPROM (zapis i odczyt danych z mikrokontrolera ATMEGA16) z powodu złego podłączenia. Nie posiadam żadnego sprawdzonego programu, który miałby testować lub zademonstrować działanie EEPROM. Po usłyszeniu, że jest błąd, stwierdziłem, że nie ma po co poświęcać czasu na analizę...
Witam, Z powodu kończących się zasobów pamięci flash jestem zmuszony przenieść definicje wyglądu znaków wyświetlacza LCD od nokii 3310. Deklaracja tablicy oraz fragment tablicy wygląda tak: [syntax=c] static EEMEM unsigned char lcd_Font[][5] = { { 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp { 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! { 0x00, 0x07, 0x00, 0x07,...
Witam, Zacząłem przygodę z xmegą i po uporaniu się z portami próbuję teraz uporać się z eeprom-em. Odczyt zapisanej komórki eeprom czy to przez "NVM" czy "maping eeprom" jest ok. Gorzej jeśli chodzi o zapisanie komórki eeprom. Na razie nie mogę przetestować fizycznie bo padł mi programator a w symulatorze wartość bajtu nie wpisuje się do eeprom. Nie...
Masz przecież wbudowane, dobrze działające i gotowe procedury do obsługi odczytu i zapisu w AVR GCC. Więc po pierwsze możesz ich użyć a po drugie (skoro chcesz wyważać głową mur) to możesz do nich zajrzeć i zobaczyć jak powinno się to robić a potem ew modyfikować lub robić to wg jakichś swoich specyficznych założeń, jeśli takie są.
uderz na fora związanie z TV-SAT, a raczej do ich archiwów, na pewno znajdziesz czegoszukasz. Była też kiedyś strona KSW-FUNCARD /nie wiem czy jeszcze istnieje/ , wprawdzie o AVR+EEPROM , ale zasada działania ta sama, i z tego co pamietam były tam dokładne dokumentacje co i jak. a jeżeli to nie pomoże, to myśle że można zdeasemblować taki wsad z loaderem...
Witam. ATTiny programuje w Arduino Ide za pomocą Arduino Nano. Z braku miejsca w pamięci ram, wrzuciłem treść powiadomienia sms do pamięci eeprom: za pomocą #include <avr/eeprom.h> eeprom_write_block Kod programu do zapisania treści powiadomienia w pamięci eeprom ATTiny85: #include <avr/eeprom.h> char powiadomienie[60]; char test[60];...
Witam. Mam zamiar zrobić generator arbitralny oparty na AVR. Metoda generacji to Variable-Clock (nie DDS). Mam zamiar użyć zewnetrznej pamięci do przechowywania próbek przebiegu. Myślałem nad zastosowaniem pamięci typu EEPROM AT28C64. Ma ona wytrzymałośc 10000 lub 100000 cylki Moje pytanie brzmi: jak rozumieć to pojecie wytrzymałości ?? tzn, że jakakolwkiek...
Przepraszam, że to nie jest odpowiedź, ale po prostu analiza nie ma sensu, bo wykorzystany sposób zapisu do EEPROM też. Może z grubsza: "Adresy są obok siebie". Nie pokazujesz programu, to należy zgadywać, że podajesz adresy np. 11,12,13, zapisujesz po 2 bajty i je sobie nadpisujesz. Poza tym nie wiem jakie prądy i napięcia zamierzasz mierzyć, ale temperatury...
Witam. Zakupiłem wspomniany programator UPP628. Programatorek spisuje się przyzwoicie, choć programowanie równoległe jest nadal niedostępne w obecnej jego wersji. Przywróciłem do porządku ATmegę32 która nie chciała komunikować się przez LPT. Dodatkowo bardzo sprawnie przebiega zapis/odczyt różnych kości Flash i EEPROM, których miałem trochę pod ręką....
Zrodlo programu bdm AVR Studio v4.13 procesor ATTINY2313 ,kwarc 20MHz Program zostal napisany bardzo dawno temu i nie jest jakos szczegolnie "dopieszczony" :-) ,ale dziala, wiec nic nie zmienialem. Udostepniam tylko zrodla na AVR poniewaz doszedlem do wniosku ,ze nawet poczatkujacy potrafi skonfigorowac lacze RS232 ,wyslac 5 bajtow i odebrac 2. Inna...
Witam, Mógłby ktoś sprawdzić, gdzie jest błąd? W pamięci EEPROM program zapisuje same zera. Czujnik podpięty do portu PD5. 5V - 5V, GND - GND, wyjście - PD5, między 5V a wyjściem sygnałowym rezystor 3,2kOhm. #include <avr/io.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include <string.h> #include <avr/signal.h>...
Witam; Korzystając ze strony http://radzio.dxp.pl/ napisałem (w WinAVR) procedurki obsługujące zapis i odczyt danych z zewnętrznej pamięci eeprom 24c32 po I2C. Problem w tym że nie działają.:( Tzn zlokalizowałem problem ale nie wiem jak się go pozbyć. Oto listing programu: twiread a mianowicie w miejscu: while (!(TWCR & (1<<TWINT))); program...
Do 30 Hz po zmianie. Filtr fc=35Hz. Obecne próbkowanie: f= 125Hz (więcej nie dam, bo wtedy dokładność W takim razie musisz się liczyć z przekłamaniem sygnału na granicach pasma. Możesz to próbować kompensować w sofcie mnożąc otrzymane fft przez funkcję odwrotną do ch-ki amplitudowej filtru (kolejne mnożenia), ale weź pod uwagę, że z racji rozrzutów...
Ja na twoim miejscu zacząłbym od nauki podstaw C, a potem ogarnięcia tego języka na AVR. To po pierwsze, a po kolejne: - do zliczania nie używaj float, wbrew pozorom to nie jest obojętne, czy będzie float, czy int. Poczytaj o tym jak float jest reprezentowany w pamięci, bo możesz się zdziwić, kiedy np. x+1 będzie ciągle równe x. - EEMEM nic nie zapisuje...
AVR ma mało pamięci RAM więc pozostaje ci odczyt pojedynczych bajtów/słów z pamięci i wrzucanie ich do LCD. Ja używam pamięci EN25F16. Są bardzo szybkie(100MHz), pojemne (16Mb)i nie są skomplikowane w obsłudze. Do zmiany bmp na bgc skorzystaj z programu LCDconvert z pakietu BASCOM.
Podłączając się do tematu. Jak najbardziej znane są możliwości zwiększania żywotności eeprom przedstawiane powyżej. Jednak biorąc pod uwagę milionową ilość kasowania eeproma ($FF) czy nie można w jednej komórce eeprom np 9 przechować adres aktualnej zapisanej wartości np 10. Po każdym zapisie w komórce 10 byłaby dokonana kontrolna procedura odczytu...
Szczerze to Ciebie nie rozumiem, procek kalibruje sie po to by uzyskać częstotliwość wewnętrznego oscylatora jak najbardziej bliska porządanej. To co musisz zrobić to po odpaleniu procka zmierzyć częstotliwościomierzem i uwzględnić zmiane w kalibracji poprzez odczytanie tego bitu kalibrującego i ponowne zapisanie zkorygowanej liczby. Nie wiem po co...
Witam! Noszę się z zamiarem zaprojektowania urządzenia w którym to wyświetlana będzie spora ilości napisów na LCD-ku w związku z powyższym myślę że w tym przypadku idealna okazała by się pamięć eeprom. I tutaj kieruje pytania do Was drodzy forumowicze: 1. Czy odczyt tej pamięci jest tak samo długi jak jej zapis? Myślałem o tym aby pobierać dane z kostki...
Hej, Kiedyś miałem podobny problem. Aby sprawdzić ile danych możesz zapisać, możesz uruchomić program podobny do tego poniżej. Program ten (a właściwie jego fragment) w pętli zapisuje liczbę do pamięci EEPROM. Zapis jes uruchamiany przrerwaniem INT0, a zapisywana liczba jest w kolejnych krokach zwiększana o 1. Później musisz tylko odczytać tę liczbę...
Witam wszystkich. W pewnym urządzeniu przemysłowym potrzebne było wykonanie "klona" pamięci 93C66. Wylutowałem pamięć z PCB i sczytałem jej zawartość przy pomocy Willem'a. Wielokrotnie wykonany odczyt zawartości i weryfikacja z odczytanymi już danymi przebiegła jak najbardziej poprawnie. Jakież było moje zdziwienie, kiedy wlutowałem pamięć spowrotem...
Witam, Ważna uwaga: typ long jest całkowity, nie ma części ułamkowej, trzeba użyć single lub double. Mała wskazówka z helpów (polski ubogi pełny po angielsku w programie) Pamięć ERAM. Większość procesorów serii AVR posiada wbudowaną pamięć EEPROM. Pamięć ta może przechowywać dane nawet po wyłączeniu zasilania. Jak podaje producent nawet do 10 lat. Pamięć...
Zrobię to jednak w przerwaniu EERDY, bo tak będzie dla mnie nawet prościej. Dzięki za sugestię. Buforować nie będę, bo na zapis 42 bajtów danych struktury mam całą sekundę, zaś sam zapis (co dla tego nie ma akurat znaczenia) odbywał się będzie co minutę lub co 30 sekund. Niestety jest miejsce w aplikacji, gdzie w menu konfiguracyjnym odczytywane/zapisywane...
Przy próbie programowania wyskakuje okienko: https://obrazki.elektroda.pl/8740540800_... Odczyt z EEPROM po nieudanym programowaniu: https://obrazki.elektroda.pl/9974032400_... Przykładowy kod: [syntax=c] #include <avr/io.h> #include <avr/eeprom.h> const char EEmodName[] EEMEM = {'D','R','V'}; int main(){...
Czy dysponujesz jakimiś materiałami bądź przykładami odnośnie tego w jaki sposób mam wykorzystać pamięć RAM jako bufor? Każdy kto ma komputer z dostępem do internetu dysponuje materiałami. Wystarczy trochę inwencji i dobra wyszukiwarka. Mogę jedynie podpowiedzieć, o czym poczytać: 1) Dyrektywy .DSEG i .BYTE do definiowania zmiennych w pamięci RAM....
Z tymi uniami to trzeba uważać. Dopóki wszystko robisz na AVR to ok, ale takiego kodu nie da się raczej przenieść na inne platformy. A to dlatego, że wiele kompilatorów wyrównuje pozycje poszczególnych pól struktury, co przyśpiesza do nich dostęp, a czasami jest wręcz konieczne ze względu na architekturę procesora. W efekcie unia z char wcale nie odzwierciedla...
zapis odczyt eeprom eeprom zapis odczyt bascom zapis odczyt eeprom
sterownik vaillant elektroda willem eprom lifepo4 zamiast
zasilacze korad ariston zanik płomienia
Punkty masy w BMW X5 E53 4.4 przedlift - lokalizacja i konserwacja Electrolux PerfectCare 900 – nie działa WiFi, 3 krótkie sygnały, brak połączenia z aplikacją