Nie prościej użyć EEPROM.put i EEPROM.get ? Możesz zapisywać struct z dowolnymi typami zmiennych. Pozdr
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 {...
Najlepiej to powołaj sobie nowy typ: [syntax=c]typedef struct { uint8_t id; uint8_t behavior; uint8_t items_in_menu; Menu_Entry *sub; Menu_Entry *parent; char cText[17]; FuncPtr call_me; } TMENUENTRY;[/syntax] a następnie w kodzie zdefiniuj już sobie pięknie zmienną w EEPROM ;) [syntax=c]TMENUENTRY Menu_Entry EEMEM; // ta zmienna będzie w EEPROM[/syntax]...
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...
Skoro działa to jak najbardziej poprawnie :-) Możesz też zadeklarować zmienną typu rekordowego czyli struct i pogrupować w niej inne zmienne, wtedy program będzie bardziej przejrzysty. Generalnie nie powinno się alokować kilku osobnych zmiennych w pamięci EPPROM gdyż po zmianie układu kompilator może je inaczej rozlokować i wtedy zapisane wcześniej...
https://obrazki.elektroda.pl/1184062400_... Pokażę tu projekt zegara zbudowanego na ESP8266 i wyświetlaczu opartym na MAX7219, dodatkowo wzbogaconego o moduł przekaźników na MCP23017. PCB pod ESP będzie pochodzić z sieci, moduł przekaźników z kolei projektowałem sam. Firmware złożę samodzielnie w PlatformIO z gotowych bibliotek. Czas...
https://obrazki.elektroda.pl/3882937500_... WiFiManager to biblioteka oferująca gotowy system parowania z naszym WiFi a jej konfiguracja to raptem kilka linijek kodu. Parowania dokonuje się w trybie AP (sieci WiFi emitowanej przez ESP) a potem, po podaniu namiarów na naszą sieć, system sam je zapamiętuje i korzysta z nich przy kolejnych...
https://obrazki.elektroda.pl/7583117900_... Pokażę tutaj moją prostą implementację tzw. "WiFiManger" na Arduino R4, czyli mechanizmu, który pozwala parować Arduino z naszą siecią WiFi w stylu parowania Tasmoty, czyli najpierw Arduino jest w trybie otwartego access pointa, do którego można się podłączyć i wpisać dane naszej sieci WiFi,...
https://obrazki.elektroda.pl/8545401100_... Zapraszam na drugą część przygody z płytką Wemos D1 ESP8266 i czujnikiem temperatury/wilgotności DHT11. W tej części rozwinę swój program o zapis wyników w pamięci Flash ESP8226, wykorzystam do tego bibliotekę o wdzięcznej nazwie EEPROM . Dlaczego klasa do zapisu we Flash nazywa się tutaj...
https://obrazki.elektroda.pl/7640927000_... Dzisiaj pokażę jak można postawić na Arduino R4 WiFi prostą stronę WWW wyświetlającą zebrane przez nas pomiary na ładnych, czytelnych wykresach. Być może przyda się komuś to do projektu typu czujnik temperatury, pomiar zużycia energii czy tam stacja pogodowa. Wykresy będzie rysować dobrana...
https://obrazki.elektroda.pl/3803750000_... Witajcie moi drodzy Przedstawię tutaj mój sieciowy sterownik przekaźników kompatybilny z Home Assistant poprzez Tasmota HTTP. Sterownik oparty jest o PIC18F67J60 i dodatkowo oferuje m. in. odczyt temperatury, budzik, przyciski, niezależny panel WWW oraz szerokie możliwości konfiguracji. Wstęp...
OK. Poprosiłem go o optymalizacje kodu pod kątem dobrych praktyk programistycznych dla konkretnie tego projektu. Walnął komentarz dłuższy od samego kodu. To co zrozumiałem z jego wywodu to, że Arduino IDE ma stary i bardzo prymitywny kompilator gdzie nie wszystko da się zastosować. Szczególnie rozwodził się nad: enum class i constexpr. [syntax=arduino]...
W nowo budowanym domu, w którym jest już prąd, ale nie ma ogrzewania należało zrobić zabezpieczenie przed zamarzaniem przyłącza wodnego. Postanowiłem dodatkowo dorobić monitoring warunków (temperatura/wilgotność) panujących w domu wraz z wysyłką na serwer. Podstawowym układem kontrolującym jest Sonoff Basic – idealne platforma do budowy własnych projektów...
http://obrazki.elektroda.pl/2126980700_1... System monitorowania środowiska, oparty o interfejs LoRa IoT składa się z stacji bazowej zbudowanej z wykorzystaniem modułu Arduino Mega z bramką LoRa oraz zdalnych stacji opartych na Arduino Feather, które łączą się z stacją bazową poprzez radiowy interfejs LoRa. System pozwala na monitorowanie...
Witajcie mam problem z daptacją kodu. Zajmuję się kontrolerem BQ8030 można z nim się połączyć przez I2C i za pomocą transmisji SMBus można ten kontroler zresetować. Podszedłem do tematu i udało się za pomocą modułów CP2112 oraz FXL2P udało się zresetować kontroler. Założyłem oddzielny temat dotyczący tego problemu. Link poniżej. https://www.elektroda.pl/rtvforum/viewto...
(at)mariomario masz w internecie informacje ile RAM jest na ESP8266, tylko pytanie, czy aby na pewno chcesz użyć RAM? Aby po utracie zasilania zniknęło? Może lepiej użyć jakiejś zewnętrznej kości, chociażby EEPROM czy Flash, takie można z elektrośmieci nawet wylutować... albo w ostateczności pisać do flash od ESP8266, ale w sprytny sposób, oszczędzając...
http://obrazki.elektroda.pl/3025550100_1... Mając do dyspozycji jedną matrycę 8x8 czerwonych diod LED o boku 60,2mm oraz mikrokontroler ATtiny861 pozostałe po innych projektach postanowiłem zbudować to, co każdy elektronik chociaż raz w życiu zbudować musi: zegar ;). Ze względu na charakter wyświetlacza miał to być zegar binarny, ale...
Akurat Ty powinieneś wiedzieć sporo na ten temat, bo jak zdążyłem zauważyć sam piszesz niektóre biblioteki i nie korzystasz z bibliotek innych a czemu? Bo wtedy najlepiej wiadomo jak dana biblioteka wygląda, co zawiera, jakie ma mocne strony a jakie ograniczenia, czy może się mylę? Tzn ja mam takie podejście, że jeśli coś jest gotowego w AVR GCC to...
Witam; mam taki problem. Zrobiłem sobie strukturę w EEPROMIE w której trzymam ustawienia sterownika: [syntax=c]eeprom struct seting { char k; int temp1; long czas; char name[5]; } ustawienia; eeprom struct seting * ptrsr = &ustawienia;[/syntax] Chciałbym w sposób automatyczny , poprzez RS232 ustawić wszystkie pozycje struktury. A więc przykładowo dostaje...
Tak wygląda kod wgrany do Arduino #define __PROG_TYPES_COMPAT__ #include <avr/pgmspace.h> // For PROGMEM // Program version const char s_Version[] = "1.8.horo"; // Pin mappings for the PIC programming interface #define PIN_ACTIVITY 19 // LED that indicates read/write activity #define PIN_VDD 2 // 1: Power the PIC #define...
https://obrazki.elektroda.pl/7013991800_... Dodano po 50 To miało być masa syfu :d Jeszcze konieczna była zmiana rezystora z filtru V0 z 10k na obecnie chyba ok 640R (nadal to ledwo wystarcza), pewno 10k nie wystarczy na zwykły LCD 2x16 a ten jest 5 razy większy
(at)Piotrus_999 Niby po co przerabać skrypt linkera? Można to zrobić na kilka sposobów bez tego. A po co w ogóle coś "mieszać" a nie "po bożemu" ? Co po bożemu? Modyfikacja skryptu linkera jest po bożemu? (at)excray Wymusić adres możesz np tak: [syntax=c] struct eeprom_settings { //Tutaj wszystkie ustawienia } __aligned__((EEPROM_SIZE)); struct eeprom_settings...
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...
Dzięki za szybką odpowiedź. Nie wiem czy mnie dobrze podałem przykład, z samą tablicą jedno i dwuwymiarową nie mam problemu, natomiast z tablicą w której elementem jest struktura w skład której wchodzi kilka zmiennych. sr xxl[10]; nie jest prawidłowym zapisem ponieważ "sr" odnosi się tylko do lokalizacji danej struktury. To jest przykład z helpa...
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 Czy funkcja do obsługo EEPROM w avr z biblioteki avr/eeprom.h zapisuje dane w pamięci w konwencji little endian czy big endian? Zamieszczam fragmenty kodu: [syntax=c] typedef struct { char znak_c; uint16_t adr_znak; }ADR_ZNAK; ....... #define EEPROM_adresy_znakow ((ADR_ZNAK*)0x00) #define znaki ((ZNAK_KOD*)(((ADR_ZNAK*)EEPROM_adresy_z...
Mam coś takiego: [syntax=c] // PRZED OBSLUGA PRZYCISKOW uint8_t values_buffer[8]; uint8_t settings_eeprom; typedef union { struct { uint8_t buffer1: 3; uint8_t buffer2: 1; uint8_t buffer3: 1; }; uint8_t settings_buffer; } unia; unia settings; settings.buffer1=bri_con_value; settings.buffer2=cl_le_status; settings.buffer3=lo_hi_status; settings_eeprom...
Racja, zapomnialem zamieścić chociaż sprawka kodu. Więc tak, zapisywanie znajduje się w funkcji która wywoływania jest jeżeli która kolwiek z wartości ulegnie zmianie. Wygląda to w ten sposob EEPROM.begin(512) sprawdzałem też z wartością 64 chociaż nie wiem co to oznacza czy jest to maksymalna porcja danych jaka wyślę czy maksymalna pojemność eepromu...
AVE... Z doświadczenia mogę stwierdzić, że to dla mnie nigdy nie miało znaczenia, jako że "detale" załatwia kompilator. Jeśli sam operuję rejestrami, to i tak muszę sięgnąć po notę katalogową by znać nazwy rejestrów, bitów w rejestrach i tego, co one właściwie robią. Jak to działa w praktyce? Poniżej prosty program dla PIC18F45K50, gdzie generowałem...
Przy kompilacji jeśli próbuję skorzystać z eeprom_update_block() kompilator wywala undefined reference to `__eeupd_block_m16' niestety google nic o tym nie mówi, oczywiście biblioteka avr/eeprom.h jest załączona do źródeł. Częściowy kod programu: [syntax=c] struct time { uint8_t h; uint8_t m; uint8_t s; }; struct time closetime EEMEM={0, 0, 0}; struct...
Nie zrozumieliśmy się. "EEPROM" tu mam na myśli zewnetrzną kość. EEMEM -pewnie chodzi o wewnętrzny EEPROM , który ma 512B -dla mnie mało Ale: struct dane PROGMEM menu[]={ ......};? i struktura jest we FLASHu. Tak mi pasuje. Dzięki za pomoc.
Witam ponownie, próbowałem ogarnąć na początek funkcję eeprom_write_block. Oto fragment kodu: [syntax=c] typedef struct { // tu są chary, inty, tablice } TEngine; // zmienna w RAM volatile TEngine Engine; // Kopia będzie w EEPROM TEngine EEMEM eeEngine; // i gdzieś w kodzie dalej eeprom_write_block( &Engine, &eeEngine, sizeof(Engine) ); [/syntax] Przy...
Witam, Nie jestem zbyt doświadczony w programowaniu w C dla AVR. Stawiam dopiero pierwsze kroki,więc popełniam (choć staram się nie popełniać :) ) wiele błędów wynikających ze zwykłej niewiedzy. Stanąłem więc przed kolejnym problemem, z którym nie potrafię jak na razie sobie poradzić. Chciałem poćwiczyć ze strukturami,więc napisałem na prędce coś takiego:...
Powyższego kodu używam w dłuższym programie (nie zamieszczam tutaj bo straszny bałagan mam w kodzie), zapis i odczyt nie działają poprawnie, z kolei testowałem ten kod w oddzielnym małym programiku i działa. To znaczy, że coś robisz nie tak. Ostatnio był taki problem, zobacz Czy kolega Dr. Vee (lub ktokolwiek inny) wie jak zapisuje/odczytuje się przykładową...
Jeszcze jedna sprawa... W jaki sposób zmusić linkera (z poziomu eclipsa) aby przy definicji danych przeznaczonych do pamięci eeprom typu np: EEMEM struct _sWorkParameters DefaultWorkParameters_inEEPROM[...... umieścił je poczynając od zadanego adresu? Domyślnie wpisuje od komórki 0x00 co nie jest zalecane
WITAM Mama problem z zapisem i odczytem struktury danych do eeprom. [syntax=cpp] typedef struct sekcja { uint8_t onoff; uint8_t niski; char nazwa[21]; uint16_t rzrasz; uint8_t rgleby; uint8_t rroslinn; int8_t procent; uint8_t nachyl; uint16_t time; uint8_t przerwa; uint16_t dniakt; uint16_t dstart; } sekcja; unsigned char sek=0; sekcja sekcjabuf; sekcja...
Dziękuję za wszystkie udzielone wskazówki. Na moim etapie rozumiem porady kolegów rajszym i drobok. Rozwiązania kolegi BlueDraco na razie wydaje mi się skomplikowane :cry: , ale również dziękuję za wskazówkę. Tak jak pisałem jestem początkujący i cały czas się uczę. Moje pytanie wynikło przy pracy nad obsługą zewnętrznej pamięci eeprom 1kB. Chciałem...
Witam, mam problem z zapisem ciągu znaków do pamięci eeprom (prawdopodobnie mam namieszane coś z wskaźnikami, lecz nie umiem sobie poradzić. Mam taką strukturę: struct _CONFIG { uint32_t parametr1; uint32_t parametr2; uint32_t *opis; }; jak to zapisać do eeprom ? Na co to skonwertować ?
https://obrazki.elektroda.pl/5705697300_...
Próbuje to uzupełnić i widzę w tej tabeli nieścisłości: Atmega 128 ma: – 128Kbytes of In-System Self-programmable Flash program memory – 4Kbytes EEPROM – 4Kbytes Internal SRAM A w tabeli jest: Dodano po 9 No ok, nie to ma być, tylko trzeba pogrzebać w DS... Hm...więc szukam w DS i dla Atmega128 na stronie 291/292 mam tabelki: Widze,...
Zadeklarowałeś już typ: [syntax=c] typedef struct { char tag_rfid[10]; uint32_t datetime_rtc; } Tag_time_read; [/syntax] To teraz deklarujesz zmienną w RAMie i tablicę n-elementową w EEPROM: [syntax=c] Tag_time_read Zmienna; Tag_time_read ZmienneEE[10] EEMEM; [/syntax] I zapisujesz do EEPROMA dowolny element (np. 2.): [syntax=c] eeprom_write_block(&Zmienna,...
Witam walcze od kilku godzin z takim problemem przy zaniku zasilania kondensator podtrzymuje MCU i umożliwia mu zapis do eeprom zanik wykryty wewnętrznym komparatorem, no i układ działa ale jak szybko wyłączę i włącze zasilanie a jak zrobie to wolno to nie działa kod trochę zmodyfikowałem min wektor przerwania i dodałem funkcje testujące na lcd. Używam...
Witam, Chciałbym podyskutować i wymienić doświadczenia na temat sposobu zarządzania i przechowywania parametrów sterownika mikroprocesorowego programowanych przez użytkownika. Ogólne założenia: - parametry przechowywane w EEPROM - program sterownika w "C" - parametry różnych typów bool, uint8, int8, uint16 ... - zmienne inicjowane przez odczytane parametry...
Witam, chcę zapisywać i odczytywać do EEPROMu dane konfiguracji. Mam taki kod: section attribute not allowed for 'cfg_touch_eeprom' Gdy dodam static przed definicję cfg_touch_eeprom: ld returned 1 exit status undefined reference to `A::cfg_touch_eeprom' Co robię źle i jak to naprawić żeby działało? Pozdrawiam
Tak z innej beczki, udało mi się wczoraj odpalić SpiDevice. Rozumiem, że "domyślny" driver (spi1 z konfiguracji dla płytki discovery) nie dotyka konfiguracji pinów? Niestety - jest tak jak mówisz. Zarówno SPI jak i USART nie konfigurują automatycznie pinów. W swoich projektach inicjalizację taką daję w funkcji distortos::board::lowLevelInitialization...
Mam LPC2129 i dwa sektory flasha chce wykorzystać jako eeprom - wspierałem się przykładem: LPC2000 onchip Flash as EEPROM demo - mogę zapisać i odczytać dane z eeproma, ALE w eepromie mieści się tylko 15 komórek, a ja potrzebuje ze 3x więcej. Przy zapisie 16 struktury funkcja ee_write() a dokładniej funkcja iap_entry() która jest wywoływana wewnątrz...
Witam Można prosić o zerknięcie w te funkcję, otóż pewnego dnia przestały zapisywać/odczytywać EEPROM :? [syntax=c]typedef struct { uint8_t numer; uint8_t okrazenia; } DANE_ZAWODNIKA; DANE_ZAWODNIKA numer_zawodnika_tab[sizeof(DANE_ZAWODNIK... DANE_ZAWODNIKA przejazdy_tab[sizeof(DANE_ZAWODNIKA)]; DANE_ZAWODNIKA zawodnik_update_temp; //zapis tymczasowy...
No mi się wydaje, że trzeba by zdefiniować strukturę tablicy, coś w ten deseń: ee_adr jest adresem komórki tablicy np. tablica[5] mystr jest zmienną, której wartość chcesz przypisać danemu elementowi tablicy. Pewnie może to być element tablicy pobrany z RAMu, ale jeszcze tego nie próbowałem, adziś już mi się nie chce. strlen(mystr) możesz pobrać z sizeof(nazwa...
ale przecież one po wyliczeniu są zapisywane do long int i powinny zmieści się w zakresie. A to jak by to rozwiązać żeby dało się to wyświetlić na wyświetlaczu i na dodatek żeby każdą cyfrę dało się ostawić np klawisz w góre dodaje o jeden klawisz w dół odejmuje o jeden a klawisze w bok przesuwają liczbę. A GDYBY TO ROZBIĆ NA DWA DZIAŁANIACH LUB ZROBIĆ...
No właśnie... czy w bascomie da się stworzyć strukturę do przechowywania danych i wrzucić ją do wbudowanego w AVR EEPROMA ? (np. struct konfiguracja o polach np. konfiguracja.id konfiguracja.haslo, etc...) ? a jesli tak, to jak to zrobic ? W helpie oczywiscie o tym nie wspominaja (malo o czym pisza)... Pozdrawiam Patryk
typedef struct sortowanie struct struct visual
teorii obwodów actros diagnostyczny schemat generator xr2206
diagbox peugeot attiny13 arduino
Element N75 w wieży Pioneer - co to jest? Renault Master: Znaczenie komunikatu VERBRUIK 910.8 L