Zrobilem cos podobnego, tyle ze zapis na karcie SD. Generalnie problem jest dosc prosty, tylko musisz zrobic bufor (np cykliczny) do odbioru znakow z uarta, bo bedziesz gubic dane. Mozesz zrobic tak, ze odbierasz np 30 znakow i dopiero cala paczke zapisujesz w eepromie, w tym czasie inne znaki sa zapisywane w buforze. Dlugosc bufora musisz tak dobrac...
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(..)...
No to jeszcze raz tylko już całość i przetestowana na sprzęcie #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x1B ;PORTA #endasm #include <lcd.h> eeprom char string[12]="Hello"; flash char stringf[12]="test eeprom"; void lcd_puts_ee(char eeprom *str) { char k;...
Witam. Nie bardzo rozumiem o co ci chodzi. To jest mikrokontroler 8 bitowy i pamiec jest zorganizowana w komorki 8 bitwe. Wiec jesli chcesz zapisac np zmienna typu int robisz to tak: zapis gornych 8 bitow -> zwiekszasz adres -> zapis dolnych 8 bitow/mozesz i odwrotnie ,zalezy to od twojego zapisu notacji/ i analogicznie robisz odczyt. Ponizej...
Lepiej wykorzystaj do tego celu pamiec programu , ewentualnie eeprom. Sposob deklaracji tablic dla winavr : dla eeprom : #include <avr/eeprom.h> #define EEPROM __attribute__ ((section (".eeprom"))) unsigned char temp [20] EEPROM ={1,2,3,4,}; dla pamieci programu : #include <avr/pgmspace.h> static unsigned char temp_1 [2] PROGMEM = {1,2,3,4};
...Zauwałzyłem, że po zadeklarowaniu w ten sposób liczba komórek RAM zmniejsza się:... Pamięci programu również :( Zajrzyj do pliku pgmspace.h , no i oczywiście do dokumentacji , a w lot zrozumiesz ;) #define EEPROM __attribute__ ((section (".eeprom"))) #define FLASH __attribute__ ((section (".progmem.gcc"))&...
Aby uzyskać dostęp do odczytu eeprom, trzeba ustawić bit EEMEN w rejestrze WMCON. Wtedy eeprom widziany jest jako pamięć xdata (adresy 0x0000-0x07ff), i odczyt odbywa się tak, jak zmiennych z przestrzeni xdata, np: xdata char eep_var; data char x; (...) WMCON |= 0x08;//wybor pamieci EEPROM jako XDATA x = eep_var; Dodatkowo aby móc zapisać EEPROM,...
Bardziej chodziło mi o wstawienie nop'a tak: unsigned char EEPROM_read(unsigned char Address) { //while(EECR & (1<<EEWE)); EEAR = Address; EECR |= (1<<EERE); asm volatile("nop"::... return EEDR; } Jeśli teraz działa, ale nie wiadomo co było nie tak, to nie można tego...
[syntax=c]char k[2]; k[0]=EEPROM.read(84);[/syntax]
Witam, bez wzgledu na platforme EEPROM jak kazda inna pamiec "przyjmuje" wartosci Byte, jezeli kompilator automatycznie nie zmienia char na byte to zorb to recznie a przy odczycie odtworz char. Pozdrawiam
poprawiłem i kropek nie ma ale za to zniknął pierwszy z zapisanych łańcuchów void SaveString(char offset, unsigned char * tekst) { char i=0; for( i=0; i<=strlen(tekst); i++) EEPROM_write(offset+i, tekst[i]); EEPROM_write(i, 0); } Działa przez wywołanie: K(OpenString(30,temp,12)); nie działa...
Piszesz: [syntax=c]struct struktura{ ... char *cText; }; char text[] EEMEM="Tekst w EEPROM"; struct struktura str={.cText=text};[/syntax] Coś w ten deseń. Niestety nie da się zrobić tak, aby część struktury była w SRAM, a część w EPROM.
Niepotrzebnie tyle razy rzutujesz, możesz od razu char *cptrEEPROM=(char*)&DefaultWorg.... zarówno dla FLASH jak i EEPROM. Swoją drogą to nie widzę powodu dla którego dane powyższy kod miałby źle ustawiać cptrEEPROM.
Ogólnie to miałem na początku zrobione wszystko w metodach, wystarczyło podać adres i długość a dostawało się char*. Jednak ogólnie ESP pod Arduino ma spore problemy z ogarnięciem takich rzeczy. Po dłuższym szukaniu w sieci znalazłem podobny projekt. Zauważyłem że podczas wczytywania znaków z EEPROM osoba ta użyła: [syntax=c] String zmienna zmienna...
Najlepiej używaj jednego albo drugiego (string lub C string - czyli tablice znaków) wyłacznie bo to straszne mącenie. 1. Jak już używasz tablice znaków to pamiętaj aby na końcu dać '\0' Nie musisz czyścić [syntax=c] char char_relay1name[32]; relay1name.toCharArray(char_relay1name, 32); //int a = 0; for (int i = 0; i < relay1name.length(); ++i) {...
Też miałem o tym napisać ale dałem sobie spokój bo to nie na temat. U mnie często wychodzi około 1M cykli zapisu. Dodano po 1 Możesz zapisywać dane w kodzie Gray'a. Często kilkakrotnie zwiększa to maksymalną ilość zapisów bo każdy bit w bajcie jest zmieniany mniej więcej tak samo często. Ale oczywiście zależy to też jeszcze od charakteru zmian zapisywanych...
Piszę program który w założeniu ma posiadać pamięć ustawień. Dokładniej jest w nim 11 zmiennych oraz 128 możliwości ich ustawień (128 banków pamięci dla tych 11 zmiennych). Każda zmienna jest 8bitowa. No i dostaje od kompilatora (WinAVR ) dziwne komunikaty: warning: pointer targets in passing argument 1 of 'eeprom_read_byte' differ in signedness W kodzie...
Prawie dobrze, poza tym, że nie czytasz co tu ludzie piszą i psujesz kod coraz bardziej, teraz dodałeś zapis EEPROM w przerwanie zliczające impulsy, operacje na EEPROM są jeszcze wolniejsze niż liczenie na floatach, na koniec używaj do pokazywania kodu c/c++ Syntax, opcja w edytorze postu po lewej na górze: [syntax=c]Cytat: #include <Wire.h> #include...
W zasadzie skopiowałem przykładowy kod z noty, nie działa mi zapis do wewnętrznego EEPROM'a, odczytuje ciągle 0xFF. Piszę w C, AVRStudio4, procek kręci się na 12MHz, nie mam włączonej żadnej optymalizacji (-00), nie wykorzystuje bibliotek, programuje mkAVRcalculator. Fuse bit's: LOW = 0xFF, HIGH = 0xD9, Extended = 0xFF, lock byte = 0x3F. [syntax=c]...
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 {...
Sprytne ;) Działa, ale proszę o rzucenie okiem czy nie ma tam rażących błędów [syntax=c] T_EEPROM_Data Struktura_odczytana; //Pusta struktura memset(&Struktura_odczytana, 0, sizeof(Struktura_odczytana)); char *bytebybyte = (char*)&EEPROM_Data; char bajt; int size = sizeof(EEPROM_Data); Erase_EEPROM(); Unlock_EEPROM(); for(i = 0; i < size;...
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
Witam mam następujący kawałek kodu: int main() { eeprom_write_byte ((char*)0x0001,'a'); eeprom_write_byte ((char*)0x0002,'b'); eeprom_write_byte ((char*)0x0003,'c'); eeprom_write_byte ((char*)0x0003,'d'); eeprom_write_byte ((char*)0x0005,'e'); eeprom_write_byte...
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++;}...
Należy zapamiętać w pamięci nieulotnej (EEPROM) informację o tym, że alarm został wyzwolony. Najprostszy kod na arduino (bez problemu do przerobienia na "goły" WinAVR). [syntax=c]#include <avr/io.h> #include <avr/eeprom.h> unsigned char EEPROM_read(unsigned char ucAddress) { while(EECR & (1<<EEPE)); EEAR = ucAddress; EECR |= (1<<EERE);...
może ja czegoś nie rozumiem ale pomysła z przerwaniem jest dla mnie bez sensu. Jeśli pin nie jest podłączony do niczego to teoretycznie przerwanie nie powinno się wywoływać wcale. Ale są różne zakłócenia i może Ci się ono w takim przypadku wywoływać w różnych momentach, z kąd wiesz kiedy się ono wywoła? ten fragment uruchomienia przerwania i obsługi...
witam, dobry przykład obsługi eepromu zamieszczony jest w dokumentacji od atmegi i wygląda to tak : void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { while(EECR & (1<<EEWE)); EEAR = uiAddress; EEDR = ucData; EECR |= (1<<EEMWE); EECR |= (1<<EEWE); } unsigned char...
Zastanawiam się czemu co jakiś czas zaskakują mnie dziwne wartości. Procedury wyglądają tak: [syntax=c]//============================... void SAVE_RAM(void) { char adr=0, suma=0; EEPROM_write(adr++, sun_lvl), suma=sun_lvl; EEPROM_write(adr++, pmp_min), suma=+ pmp_min; EEPROM_write(adr++,...
A ja napisałem takie, może się przydadzą. Co prawda są na ATmegę8, ale 16 chyba się nie różni. void EEPROM_write(unsigned int address, unsigned char data) { EEDR = data; EEARH = (unsigned char) (address >> 8); EEARL = (unsigned char) address; if ( SREG & 0x80) { cli(); EECR |= (1...
Okej, z tego co zrozumiałem skoro mam podpięte do GND adres to normalnie 0xA0, no to wyskrobałem ile wlezie tego kodu ale dalej nie rozumiem o co chodzi z tym potwierdzeniem (ACK), mógłby ktoś wyjaśnić? Tutaj to co do tej pory napisałem (nie działa jeszcze): [syntax=cpp]#define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #define...
xdata char eep_var_Delta; //zmienna eeprom data char del; //zmienna w programie char EEPROM_zajety_z () //wskaznik EEPROM gotowy/zajety { if (EECON & 0x02) return 0; else return 1; } // ZAPIS // void EEPROM_zapis_Delta() //zapis Delty { EA = 0;//wylaczenie przerwan EECON |= 0x04; //wybor pamieci EECON |= 0x08; //aktywacja EECON |= 0x10; //zapis...
to wiem, lecz ciąg mam otrzymywać z formularza i będzie lądował w tablicy (np. char[10].) do eeprom zapisuje zmienne uint_8, a ciąg otrzymuję jako char ?
witam uzywam sobie funkcji: void WRword(unsigned char Ind) { //extern void eeprom_wb(unsigned int addr, unsigned char val); eeprom_write_byte( Ind, Dato); eeprom_write_byte( Ind+1, (Dato>>8)); } i wyskakuje mi komunikat.... mem.c:13: warning: passing arg 1 of `eeprom_write_byte' makes pointer from integer without a cast deklaracje mam takie: unsigned...
Chciałbym się odnieść do linku https://www.elektroda.pl/rtvforum/topic3... w którym w skrócie udało się zrobić cos takiego, że w zależniści od bajtu nr 0 w pamięci EEPROM ESP wchodzi albo w tryb konfiguracyjny, gdzie tworzy sieć wifi do wprowadzenia parametrów dla docelowej sieci wifi. Po zapisie ESP32 sie resetuje i wchodzi w tryb normalnej...
Na 100% działają na mojej ATmega169p, optymalizacja -Os void eeprom_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous write */ while(EECR & (1<<EEWE)); /* Set up address and Data Registers */ EEAR = uiAddress; EEDR = ucData; /* Write logical one to EEMWE */ EECR |= (1<<EEMWE);...
zapis do eeproma w atmedze16 void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { while(EECR & (1<<EEWE)); EEAR = uiAddress; EEDR = ucData; EECR |= (1<<EEMWE); EECR |= (1<<EEWE); } unsigned char EEPROM_read(unsigned int uiAddress) { while(EECR &...
Wracam do tematu ponieważ dalej mam problem. Moje funkcje zapisu i odczytu zawierają zmienną adres typu unsigned char co daje mi możliwość zapisu 255 komórek adresu. Również jest błąd ponieważ nadpisuję dwa razu część młodszą i starszą. Chcę zapisać wyświetlacz LCD z pamięci EEPROM. Wyświetlacz posiada 1024 komórek (jedna komórka 8 bitów). Zapis i odczyt...
Modyfikator eeprom pewnie coś psuje. Nie znam tego kompilatora, ale spróbuj coś takiego: void strcpye(eeprom char* dptr, const char* sptr) { while((*dptr++ = *sptr++) != 0) ; }
jeśli a zadeklarowane jest jako tablica: char a[128]; to adresem danych w tej tablicy jest: - a - &a[0] &a to ... w sumie nie wiadomo co [; 4\/3!!
re. Odczyt pojedynczego bajtu dałem jak z noty katalogowej i co ciekawe - ruszyło - co prawda póki co sprawdziłem tylko w symulatorze, ale z rana sprawdzę jak uP to potraktuje. Mam jednakże pytanko. Przeglądając forum natknąłem się na informację, że można by stworzyć tablicę w EEPROM i komunikować się jak do zwykłej tablicy. Kod jest taki na to: #define...
Witam, mam problem z długim czasem odczytu z wewnętrznego EEPROMu w ATmega 32. EEPROM trzyma obrazek, który wyświetlany jest na graficznym LCD i wyraźnie widać jak grafika pojawia się stopniowo w ciągu ok. sekundy. Sprawa wydaje się dosyć dziwna, bo w AT89S8252, który teoretycznie powinien być daleko w tyle za ATmeg'ą, wszystko trwało ulamek sekundy...
Jak w C wpisać coś do pamięci EEPROM AT89S8252 i odczytać? Teoretycznie , ... #include <at89s8252.h> unsigned char read_eep(unsigned char xdata *index) { unsigned char eepd; //EA=0; //jeśli korzystamy z przerwań WMCON|=WMCON_EEMEN; eepd = *index; WMCON &=~WMCON_EEMEN; //EA=1; return eepd; } void write_eep(unsigned char...
ja bym proponował spróbować tak: for(zp1=1;zp1<20;zp1++) { cli(); eeprom_busy_wait(); eeprom_write_byte ((unsigned char *)zp1, dane[zp1]); eeprom_busy_wait(); sei(); }
Poniżej przesyłam błędy kompilacji spowodowane dodaniem EEPROM.h [syntax=c] libraries\EtherCard-master\EEPROM.cpp.o: In function `EEPROMClass::EEPROMClass(unsigned int)': C:\Users\Admin\Documents\Arduino\librari... multiple definition of `EEPROMClass::EEPROMClass(unsigned int)' libraries\EEPROM\EEPROM.cpp.o:C:\Users\A...
Witam, staram się zaprogramować pamięć SPI z seri 25LCXXX, jednak mam pewne kłopoty, to co udało mi się zrobić korzystając z ds wygląda tak: [syntax=c]#define SPI_SS PB4 #define SPI_MOSI PB5 #define SPI_MISO PB6 #define SPI_SCK PB7 #define INSTR_READ 0b00000011 #define INSTR_WRITE 0b00000010 #define INSTR_WREN 0b00000110 unsigned char spi_data; unsigned...
Wykorzystałem do sprawdzenia kod: #include <avr/eeprom.h> int main() { unsigned char x = eeprom_read_byte((unsigned char*)10); if(x <= 0xFA) // jeżeli osiągnie FA to znaczy, że się restuje { while(1); // wystarczy już zapisów ;-) } eeprom_write_byte((unsigned char*)10, x-1);...
Witam Chciałem poszerzyć pole swojego działania w ATMEGA8 o zapis i odczyt danych z pamięci wewnętrznej uC EEPROM. Otóż znalazłem na 20 i 21 str. manuala ATMEGA8 funkcje w C zapisu i odczytu danych z EEPROM uC. Oto one: Zapis do EEPROM: void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous...
Z floatem jest troche więcej zabawy Owszem , ale jeśli to dotyczy kompilatora innego niż AVR-GCC.Po zmiennej typu bit poznaję , że przytoczona przez Ciebie funkcja dotyczy bardziej MCS-51 , a nie AVR , choć tych drugich oczywiście nie wyklucza. Wracając do meritum , czyli zamiany nieszczęsnego float na string , to gdyby tylko zajrzeć do pliku nagłówkowego...
Witam STM32l151CC dysponuje 8Kb EEPROMu.. Próbuję zadeklarowac zmienne w pamieci eeprom, zrobilem cos takiego: [syntax=c] const char EEPROM_moj[] __attribute__ ((section(".eeprom"))) ={10,20,30,40}; w pliku linkiera MEMORY { rom (rx): org = 0x08000000, len = 256k ram (rwx): org = 0x20000000, len = 32k eep (rw) : org = 0x08080000, len = 1k } SECTIONS...
Witajcie. proszę o wytłumaczenie, jak poradzić sobie z takim problemem. Mam dwie tablice. Jedna umieszczona jest w RAM Dodano po 1 W sumie udało mi się temat rozwiązać przy pomocy stron: https://www.ibm.com/docs/pl/i/7.5?topic=... https://cpp0x.pl/forum/temat/?id=16370 Pomogła funkcja "strcpy" Jest może inna metoda ?
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ć...
Witam serdecznie, Czy używanie składni: [syntax=c]for(i=(unsigned char*)2; i<(unsigned char*)20; i++) eeprom_write_byte(i,0);[/syntax] wiąże się z koniecznością eeprom_busy_wait() po każdym użyciu eeprom_write_byte()?
Witam; mam pewien problem, zrobiłem funkcje do odczytu i zapisu pamięci 24C08 po I2C. Wszystko śmiga super, ale postanowiłem zamienić ją na większą. Kupiłem pamięć 24LC1025. Podłączyłem ją, ale widzę tylko 64000 bajtów, a pamięć ma według noty 128KB. Jak można dostać się do następnych 64000, skoro adresowanie ma się zmieścić na 2 bajtach. Funkcje obsługujące...
Witam, dzisiaj miałem czas na zgranie kodu i wyrzucenie z niego tego co nie dotyczy tematu: Dodano po 7 Przepraszam za dziwne znaki w komentarzach ale przerzucałem z Windowsa na Linuxa i nie konwertowałem kodowania. Będę wdzięczny za pomoc. Sławek
Przepisałem to na prostsze rozwiązanie - osobno adress eepromu i osobno adres komórki [syntax=cpp] #define EEPROMS_ID 0b10100000 unsigned char E24C1024_read(unsigned int dataAddress) { TWIStart(); TWIWrite(EEPROM_ID); TWIWrite( ( (dataAddress >> 8) & 0xFF) ); TWIWrite( (dataAddress & 0xFF) ); TWIStart(); TWIWrite(EEPROM_ID+1); unsigned char dat = TWIReadACK();...
No ale co za problem stworzyś sobie funkcje w bibliotece do wyświetlacza LCD która by Ci wyświetlała napis z odpowiedniej pamięci. Ba nawet by mogła definiować w jakiej pamięci dana zmienna ma się znaleść Przykłady deklaracji: [syntax=c] void lcd_char(char c); void lcd_str_PGM(const char * str); void lcd_str_EEPROM(char * str); void lcd_int(int val);...
Witam DAC AC CHARACTERISTICS- tutaj chodzi pewnie o charakterystyki przejściowe albo dla sygnałów zmiennych (AC) Voltage Output Settling Time- czas ustawienia napięcia wyjściowego COMPARATOR komparator Input Voltage Range zakres napięcia wejściowego Input Capacitance pojemność wejściowa Hysteresis4 histereza Response Time czas odpowiedzi TEMPERATURE...
Siemanko, mam problem z zapisem i odczytem danych z eepromu. Mam Atmegę168 taktowaną kwarcem 16MHz i mam w niej funkcje zapisu do zewnętrznego eepromu 24C64. Jednak program dochodzi tylko do momentu wysyłania 0xA0 i koniec... cisza. Gdy zmieniałem kwarc na 4Mhz Zapis i odczyt ładnie się wykonał. // procedura transmisji sygnału START void TWI_start(void)...
Mam problem z zapisem danych do at24c256, może bardziej z odczytem. Chcę zapisać adres MAC w eepromie, (wiem, że esp ma coś podobnego do eepromu, ale jednak chcę na zewnętrznym) Mam taki kod: [syntax=c] int adresZapisu = 630; String str = ""; str = tablicaMacCzujnik[a]; char writemessage[str.length() + 1]; str.toCharArray(writemessage, sizeof(writemessage));...
https://obrazki.elektroda.pl/1624878200_... W naszych domach wykorzystuje się coraz więcej urządzeń połączonych z Internetem, głównie elementów zaliczanych do Internetu Rzeczy. Te elementy automatyki domowej czynią nasze mieszkania coraz wygodniejszymi, ale też coraz bardziej zależnymi od sieci - gdy jej zabraknie, cała ta inteligentna...
A tak dla ciekawości - ile linii kodu należy wpisać, aby to symboliczne eeprom char x; Naprawdę nie namawiamy do niczego. Każdy rzeźbi jak lubi.
z tego co widze uzywasz komorki o adresie 0x00... z tego co pamietam nalezy sie wystrzegac zapisywania danych pod nia ,bo np. przy programowaniu procka zdaza sie ze moze byc wyczyszczona... Chyba ze przy innych adresach to samo sie dzieje? #include <avr/eeprom.h> eeprom_write_byte(0x01,0x41); while(eeprom_is_ready()==0...
Heh... a mnie działa ;) Start programu! >TEST Funkcja test: >TEST Funkcja test: >+CMT:"+1234567890",,&q... Wykryto token: #1234567890# >TEST Funkcja test: 1234567890 >TEST Funkcja test: 1234567890 >+CMT:"+111222333",,&qu...
LosRabinos Nie wiem, czy trochę poniewczasie, ale zawsze to coś. Odnośnie hardware-u: PCF8563 noga 3 (A0) do masy i wtedy (pierwszy listing): [syntax=c]// Funkcja zapisuje pojedynczy bajt danych do układu RTC na magistrali I2C void EEPROM_Write(unsigned char ucAddress, unsigned char ucData) { TWI_Start(); // Wysłanie sekwencji start //tutaj zmien na...
Zamieść fragmenty Twojego kodu. Może podczas zapisu rzutujesz int na unsigned char.
https://obrazki.elektroda.pl/6969507000_... Witam Po wykonaniu zegara na lampach Nixie, wpadłem na pomysł wykonania czegoś o podobnej zasadzie działania, lecz z długą żywotnością owych wyświetlaczy cyferek. Obudowa wykonana ze sklejki 8 mm, którą wyfrezowałem na cnc3018, sklejona warstwowo i pomalowana lakierobejcą. Z czarnej pleksi...
1. Jak rozpoznać czy to wersja układu na 5V czy na 3,6V? Nie ma tam jakiś charakterystycznych oznaczeń na obudowie? Ciąg literek i cyferek, żeby można było ustalić itp. Jeśli wylutowałeś to z telefonu, obstawiam na niższy zakres napięć. TWINT ma być zerowane programowo np. przez procedurę obsługi przerwania na samym jej końcu. Zerowanie ma być zrealizowane...
uint8_t EEMEM wait_e; ... main unsigned char wait; wait = eeprom_read_byte(&wait_e); .... eeprom_write_byte(&wait_e, wait); eeprom_busy_wait(); ******************************** uint8_t EEMEM lim_e[5]; ... for(pos_e = 0;pos_e < 5;pos_e++) { eeprom_write_byte(&lim_e[pos_e], lim[pos_e]); eeprom_busy_wait(); }
Co do drugiej uwagi wspomniana konstrukcja w funkcji eeprom_write() jest takowa, z mysla o tym, zebym mogl jej uzywac do zapisywania ciagow. Dzieki temu moge napisac eeprom_write(EEPROM1, adres, "tekst do wpisania < 32 liter"); Obawiam się, że to będzie działać prawidłowo tylko wtedy, gdy adres będzie podzielny przez 32. Poza tym,...
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...
Na początek należy uzupełnić kod programu ProgramPic.ino aby obsłużyć ten mikrokontroler: [syntax=arduino]const char s_pic16f913[] PROGMEM = "pic16f913"; const char s_pic16f916[] PROGMEM = "pic16f916";[/syntax] [syntax=arduino]{s_pic16f913, 0x13E0, 4096, 0x2000, 0x2100, 9, 256, 0, 0, FLASH4, EEPROM, MCLR_first}, {s_pic16f916, 0x13A0, 8192, 0x2000, 0x2100,...
Witam dziękuję za odpowiedź. Kombinowałem trochę, jednak ciągle napotykam na błąd, którego nie potrafię obejść, nie mogę znaleźć też nigdzie rozwiązania. oto kod programu: #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <hd44780.c> #include <stdlib.h> #include <avr/eeprom.h> char wybrany; int...
Witajcie, szukałem już o tym, ale nie pomogło mi nic z obecnych na forum. Pisze program na atmege88p. Potrzebuję odzytywać i zapisywac 15 charów do pamieci EEprom. Widzę że mi to dziala bo po resecie zostaje to co ja zmienilem w trakcie działania programu, ale to nie są char-y, tylko jakby znaki z chińskiego alfabetu. Pierwsza funkcja wrzuca cokolwiek...
Podlacze sie z pytaniem pod temat, chce zapisac liczbe 8 bitowa(max 0xFF) w wewnetrznej pamieci eeprom w komorce o adresie powyzej 256d, ktorej funkcji uzyc? Np do komorki o adresie 456d zapisac wartosc 0xCE, czy to bedzie prawidlowe? unsigned short adres=456; unsigned char wartosc=0xCE; eeprom_write_byte(adres, wartosc);
Raczej albo są zapisane wszystkie wartości albo żadna... opcji sprawdzania jest wiele. Coś zawsze odczytasz, w pierwszej komórce możesz trzymać sumę kontrolną, odczytujesz wszystko, jeśli suma jest ok to uznajesz odczyt, jeśli nie to zapisujesz wartości domyślne. Na poziomie sprzętowym nie ma czegoś takiego jak NaN. W praktyce NaNy to dodatkowa flaga...
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];...
Build started 6.4.2014 at 00:25:04 avr-gcc -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Proba_10.o -MF dep/Proba_10.o.d -c ../Proba_10.c avr-gcc -mmcu=atmega16 -Wl,-Map=Proba_10.map Proba_10.o -o Proba_10.elf avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature...
to chyba jednak nie w tej obudowie .. w kazdym razie dzieki.. sadze ze przez 1-wire wygodne to bedzie bardzo... juz nawet poczytalem troche dokumentacji i przykladow.. oto co z tego wyszlo... : unsigned char ds2431_select(unsigned char *romcode) { unsigned char i; if(!W1_INIT()) return 0; if(romcode) { W1_WRITE(0x55);...
Witam Serdecznie, W pracy otrzymałem za zadanie napisanie programu na mikrokontroler AT89C51AC2. Program ma za zadanie niektóre swoje zmienne (w tym nazwę programu) trzymać w pamięci EEPROM. Funkcję obsługi pamięci zaczerpnąłem z książki Majewski-Kardach "Programowanie mikrokontrolerów serii 8X51 w języku C". Problem pojawia się przy zapisie nazwy programu...
Potrzebuje to do zapisania większej liczby od 255 w EEPROM.. https://gist.github.com/ledlogic/a6d901f... Liczba zajmuje 4 bajty w eeprom a wiec nalezy to wziac pod uwage przy adresowaniu podczas zapisywania kolejnych wartości w eeprom. Pozdr
to działa IPAddress myIP(192, 168, 178, 212); IPAddress myIP(conf.values[0].c_str()); błąd kompilacji Compilation error: no matching function for call to 'IPAddress(const char*)' nie bardzo wiem jak użyć bool fromString(const String &address) ?
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...
Cześć po przerwie. Widzę, że projekt się rozwija w dużym tempie. Pytanie do (at)robgold, próbuję skompilować Twoją wersję 3.11, gdzie jest zmiana z EEPROM na PSRAM, ale dostaję taki błąd: C:\Users\Jacek\Documents\Arduino\ESP32_r... error: cannot convert 'unsigned char*' to 'unsigned int*' in assignment 2754...
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")));...
Witam, W jaki sposób skopiować zawartość tablicy która jest w pamięci flash do tablicy w pamięci RAM, Czy trzeba odczytywać bajt po bajcie, i później zapisywać do tablicy RAM czy da się to zrobić szybciej jakąś gotową funkcja jak memcpy? Np. mam taki kod; [syntax=c]#include <avr/io.h> #include <avr/eeprom.h> char tablica[22]; EEMEM char...
Dziękuje kolego rozjaśniłeś mi sytuacje zrobiłem tak: uint8_t eeprom_val[512] __attribute__((section("... void zapisz(uint8_t pozycja, uint8_t wartosc ) { eeprom_busy_wait(); eeprom_write_byte(&eeprom_val[po... } char odczyt(uint8_t pozycja)...
Podpowiedzcie mi prosze, jak zadeklarowac zmienna w pamięci eeprom po adresem 0x01?? bo: #define EEMEM __attribute__((section(".eeprom"))) EEMEM unsigned char ZMIENNA; lokuje ja w pierwszej wolnej komorce czyli 0x00. Moge zadeklarowac wczesniej inna zmienna PUSTĄ tak aby kompilator ulokowal ja pod 0x00 ale nie jest to elegancke. W '51 robilo sie to...
Witam, Mam Arduino Mini Pro 16MHz 5V , do niego podłączony EEPROM zewnętrzny 24C02 (ATMEL) zgodnie z instrukcją: * EEPROM 4 (GND) to GND * EEPROM 8 (Vcc) to Vcc (5 Volts) * EEPROM 5 (SDA) to Arduino Analog Pin 4 * EEPROM 6 (SCL) to Arduino Analog Pin 5 * EEPROM 7 (WP) to GND * EEPROM 1 (A0) to GND * EEPROM 2 (A1) to GND * EEPROM 3 (A2) to GND Sprawdziłem...
temat jest o zupie a wy o d... Pomijając wywody natury ogólnej masz kolego do wyboru wewnętrzną pamięć RAM od pcf-a i to nie małą bo 240 bajtów albo stałą od eeproma. Jedno i drugie jest dobre bo pcf ma podtrzymywanie bateryjne (chyba go uzywasz) ale kiedy bateria padnie to zapisy znikną więc pewniejsze jest umieszczenie tych informacji w pamięci eeprom....
A jak to zrobić w procku ?? Oczywiście załadowałem plik .BIN w miejsce Inital EEPROM z danymi. Chciałem wyświetlić na LCD i nic #include <avr/io.h> #include <avr/eeprom.h> #include "LCD.c" int main(void) { lcd_init(); char string[32]; char i; for(i=0;i<32;i++) string[i] = eeprom_read_byte(i);...
co do programu Delphi nie widziałem w nim procedury synchronizacji ecu, Jest ta procedura, w funkcji immo->zapis do sterownika silnika, czy jakoś tak. brak jest bezpośredniego dostępu do kanałów Kanały i grupy, to są funkcje umowne, charakterystyczne dla VAG1551, VCDS i podobnych. Żeby tu coś zdziałać w kwestii odczytu pinu, to potrzebne urządzenie...
Jeśli masz wystarczającą ilość pamięci EEPROM to nie ma problemu. Dowolny tekst umieścisz w niej stosując char EEMEM []="tekst"; Analogicznie do tekstów umieszczonych za pomocą atrybutu PROGMEM, musisz do odczytu zastosować odpowiednią funkcję z eeprom.h.
Witam ! Startuję dopiero z Codevision AVR i mam pytanko - nie znam dokładnie prodedur zapisu i odczytu z eepromu. czy ktoś mógłby mi coś podpowiedzieć. Przykład - chciałbym zapisać wartość zmiennej a ( typu char ) do eepromu a potem ją odczytać . Wszelkie gotowe rozwiązania mile widziane :-) Pozdrawiam
Witam! Jak dla mnie, to wcale nie jest dziwne że ten kod nie działa, nawet po zmianie adresów. unsigned char licznik[6] = {0,0,0,0,0,0}; void licznik(void) { ... } Nie możesz mieć w programie dwóch symboli (w tym wypadku tablicy oraz funkcji) o tej samej nazwie. Prawdopodobnie nie jest to jednak powodem złego działania,...
Udało się powyższymi metodami oszczędzić nieco pamięci, ale chciałoby się więcej (;. zastanawiam się czy poniższa konwersja do uint8_t ma prawo zadziałać? nP1.getValue(uint8_t(&storeData[1].pos))... nC1.getValue(uint8_t(&storeData[1].ch)); kompilator przepuszcza coś takiego z uwagą: warning: cast from 'uint8_t* {aka unsigned char*}' to 'uint8_t {aka unsigned...
Witam, Przepraszam za odkopywanie tematu, ale posiadam ten sam problem. Chodzi o mikrokontroler atmega16 i pamięć EEPROM 24C16. Dopiero zaczynam swoją przygodę i na początek chciałbym zapisać i odczytać 1B danych. Zapoznałem się z dokumentacjami oraz z wieloma opracowaniami. Oto kod źródłowy: void start_twi() { TWCR = (_BV(TWINT)...
Cześć. Mam program który umożliwia skonfigurowanie połączenia WiFi z poziomu przeglądarki. Sketch działa poprawnie ale mi z pewnych względów pasuje konfiguracja bez hasła wifi. Poprawiłem program na tyle że łyka konfiguracje bez hasła ale po tym esp mi się zawiesza i muszę mu dać ręczny reset. Po tym działa już prawidłowo. Prawdopodobnie program wiesza...
udało się uruchomić :-) Mam kilka pytań (może dla kogoś są oczywiste ale jestem początkujący ) co oznaczają wartości 11,32,11,5,100 char pompoff[11] = ""; //wyłączenie pompy char ssid[32] = ""; //nazwa sieci wifi clear_array(data.pompon,11); pn.toCharArray(data.pompon,5); EEPROM.put(100,data); Czy jeśli dołożę kilka dodatkowych zmiennych i chciałbym...
signed or unsigned char Nie ma takiego typu w VB
Super to ci wystarczy wystarczy zrobić skrypt PHP i na czyś go odpalać i wysyłać na PVmonitor tu całość InverterProtocol V1.00 1, Communication data format : COM set:9600,8,n,1,n 0xaa,0xaa,0x00,sourceaddress,Destination... checksum:unsigned...
chara const chara chara const chara konwersja chara flash
diagnoza silnik renault płyta sygnał dźwiękowy kosę spalinowy kupić
mikrokomputer cobra1 sprawdzić silnik wycieraczek
Jak podłączyć gramofon Fiszer do Radmor 5102? Ciężar podstawy odciągu 9-metrowego masztu - obliczenia i analiza