Za długie pętle lub za krótkie tablice zmiennych.
Symulator w Atmel Studio 6.0. Twoje funkcje u mnie działają poprawnie, tzn dane z jednej są kopiowane do drugiej. To kopiowanie jest "bezmyślne" w sensie że, kopiuje obszar pamieci bajt po bajcie, bez znaczenia jest typ zmiennej. Może problem tkwi w dobieraniu się do pól struktury?
Te dane to zawsze będą stringi? Jeśli tak to przerób:[syntax=c]eeprom_write_block(wsk... eem_buf, strlen(wsk));[/syntax]na: [syntax=c]eeprom_write_block(wsk, eem_buf, strlen(wsk)+1);[/syntax]Dzięki temu zapisywany będzie też znak końca stringu. Pokaż jak odczytujesz dane z eepromu.
Wydaje mi się że nie opłaca się ładować tych 32 bajtów do eepromu , pewnie procedura odczytująca zajmie więcej miejsca. Ale :) można by tam coś innego władować, w eepromie masz coś około 500 bajtów wolnych. Wolne miejsce można by wykorzystać na teksty wyświetlane na LCD. Niektóre łańcuchy też się powtarzają. Często masz np . [syntax=basic4gl]Locate...
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...
Witam wszystkich Elektrodziaków! Siedzę nad tym juz jakiś czas i nie umiem znaleźć żadnej pomocnej mi funkcji. Chodzi mi o wydobycie z poszczególnych literek stringa kody ascii. Funkcja ASC() była by bardzo pomocna, z tym że zamienia ona tylko pierwszy znak. Co z pozostałymi? Marzy mi się nawigacja po stringach jak w pascalu tekst[10] i po sprawie....
No widzisz. Porównujesz pisanie bootloadera ze ściemniaczem do taśm led na arduino. Przecież to bez sensu. To co jesteś w stanie zrobić? Ledem zamigać? Bootloader nie jest trudniejszy niż ściemniacz, można znaleźć gotowce w sieci, trzeba "tylko" je dostosować, obie roboty wyceniłbym tak samo. No to coś prostszego, emulacja eeprom w STM32F10x. Jest...
Jeżeli stosować się do porady kolegi wyżej można by zastosować tablice tylko dwu-wymiarową.Chcąc mieć 3 poziomy wystarczy nam 3x n gdzie n będzie ilością funkcji danego poziomu a ostatni trzeci odnosnikiem do konkretnych funkcji (za pomocą właśnie wskaźnika) Przyznam że pomysł fajny i relatywnie prosty szkoda że sam tak nie robiłem w moim systemie...
nie o to mi chodziło, co mam zrobić z tym stringiem żeby eeprom mógł go łyknąć ?
Buduję sterownik oparty na at89c2051. urządzenie to zawiera menu wywoływane z pod RS232 na standartowych instrukcjach print i input. Niestety objętość "tekstu" w menu jest na tyle obszerna, że zajmuje to prawie całą objętość pamięci procka. Przyszło mi do głowy rozwiązanie aby tekst menu przekonwertować i wysłać do pamięci eeprom I2C, a następnie rekonwetować...
myslalem juz o tym drugim rozwiazaniu, ale to strasznie toporne i zupelnie nie elastyczne - wole nie wyobrazac sobie poprawek programu, gdy sie np. okaze, ze string, ktory jest pierwszy w eepromie, musi byc jednak o kilka bajtow dluzszy ;) ewentualnie moglbym zalozyc pewne odstepy pomiedzy stringami, tak zeby kazdy zaczynal sie o adresie bedacym np....
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...
Robisz to gdzieś w kodzie, a nie zaraz przed instrukcją połączenia. Dodano po 1 Chodzi o ssid Dodano po 2 Poza tym ogólnie kod strasznie zagmatwany. Po co stringi? Po co te zmienne globalne typu eRead. Myślę że przyczyną problemu jest to że korzystasz ze wskaźników jako ssid i password.
Mam kolejny problemik;-) Mam dziwne wrażenie że te stringi mi się nie zmieszczą do tej atmegi;-)) A co , książkę piszesz :?: ;) Masz przecież jeszcze 512 B eepromu , kilka setek B RAM-u do dyspozycji i to wszystko mało :!: :?: :!: :?: I tutaj mam pytanko czy dałoby się to zapisywać do AT24C04 i z niej odczytywac?;-) Pewnie :!: Jesli tak to czy nie...
Z tym zerem jest tak, że jak tworzysz zmienna typu string (null-terminated) to ma ona automatycznie zakończenie w postaci 0 na końcu. Lecz jeśli zrobisz tablicę znaków i chcesz uzywać jako stringa to musisz dodać 0 na końcu (żeby było kompatybilne ze stringiem). Czyli każdy string = text+0 a tablica bedzie u ciebie tylko text, dlatego aby swobodnie...
tak dokladnie wedlug waszych rad. do tego wazną rzeczą bylo powiekszenie tablicy na do ktorej byly kopiowane wyciete stringi o 1 w celu zrobienia miejsca pod te nieszczęsne null, bo nie szło tego porównywac.i nic dziwnego w sumie. na ten moment dzieki wam problem rozwiązalem. wiec dziekuję i klikam na pomogl ;) nie zamykam tematu, bo moze ktos bedzie...
jedyna zaleta jaką widzę to płaska przestrzeń adresowa, co wyeliminuje obsys związany z avr-g++, To jeden z wielu powodów, dla których zrezygnowałem z AVR na rzecz ARM. Te "PROGMEM" i "PSTR" czy tam "F" w Arduino, może doprowadzić do rozpaczy. Nie ma możliwości aby w np "sprintf" ("sprintf_P") mieszać stringi z FLASH i RAM. jedynym istotnym ograniczeniem...
mam podobny problem, chcialem wrocic do orginalnego seriala i cos namieszałem ponieważ program nie przyjmuje mi stringów. Może ktoś kto sie zna napisze tutorial stawiania Tornada na nogi, np. pan Karwos. Założe się że przyda sie wielu osobom. 1. Uruchamiamy UFS3 Tools (patrz: zalacznik) 2. Naciskamy connect 3. Zaznaczamy: Write firmware, Write EEPROM,...
Witam Postanowiłem nauczyć się wykorzystywać funkcji w swoich programach. Na początek chciałem przerobić opanowaną jakiś czas temu obsługę układu DS1307 . Nie wiem czemu, ale wartości na lcd dochodzą do 59 i program staje, procesor się nie zawiesza, po prostu wartość 59 zamarza na wyświetlaczu. Błąd musi być gdzieś w funkcji, w jej wywołaniu, bo zawartość...
To co znalazłem w pliku *.lss nie jest dla mnie w tej chwili zrozumiałe: To sbic oraz rjmp zajmuje się testowaniem flagi zajętości EEPROM. W opisie do eeprom.h autorzy zaznaczyli, że funkcje najpierw sprawdzają zajętość podsystemu odpowiedzialnego za EEPROM. Szczegóły implementacji będą w źródłach AVR-libc, one się trochę różnią pomiędzy procesorami,...
Czy gdzies jest napisane ze chodzilo mi o RAM matrycy ? Nie, nie było, jak równiez nie było napisane, że chodzi tobie o ROM Chyba ze szczytem mozliwosci tego wyswietlacza jest dla ciebie wyswietlanie non stop tego samego obrazu ;-). Proponuję ton dyskusji dążący bardziej do wzajemnego zrozumienia, w moim poście nie wyraziłem negatywnej nastawienia...
(zresztą są chyba ARMy, które EEPROM mają). STM seria L na przykład Błąd powstał dlatego, ze moje wypociny dla linkiera nie zostały zapisane. To byś nawet raz nie zlinkował poprawnie. Ciekawe zresztą jak bo wczoraj nie wiedziałeś jeszcze że coś takiego jest, wymyślałeś jakieś stringi na końcu flash i wyszukiwanie. Ja akurat nie lubię modyfikować skryptów...
Może źle to opisałem. To ma być pilot, który odczytuje kody z innego pilota, zapisuje je w eepromie, i przyporządkowuje kolejny klawisz. Z tym stringiem to było tak tymczasowo do testów, żeby zmniejszyć długość kodu, a później przerzucę się na eeprom.
Cześć, masz może jakiś soft do inwertera Growatt ? Bo chcialbym zobaczyć czy są w nim zapisane gdzieś parametry odnośnie limitu mocy. Twój inwerter oryginalnie przepuszcza więcej niż 4000w? Czy przerabiałeś go? Ja obecnie mam w swoim 6000tl3-s panele o mocy 7400w i w przyszłym tygodniu dokładam 4 panele aby uzyskać łącznie wejście 8400w nie przekraczając...
Witam ponownie. Dziekuje za wszystkie pomocne odpowiedzi, chociaz nie potrzebnie moje pytanie zostalo zinterpretowane odnosnie tego ze potrzebuje jakiegos sprzetu. Nie pytalem o sprzet, chodzilo mi bardziej o metodologie programowania takiej komunikacji, jak napisac taki software aby mogl przeslac zmienne do eeprom i je zapisac. Tym razem zapytam konkretniej....
Hmm, czytajac ostatni post atoma, troszka sie skrzywilem. Mowie ze program ktory napisalem dziala, ale nieprawidlowo, to nie jest wynik zamiany miejscami danej z adresem, malo tego, zmienna k, która jest oczywiscie stringiem, bo jest to zlozenie LITERY P i liczby 11, ktora jest zamieniona ze zmiennej byte (kali) na stringa podstawiona w miejsce adresu...
Nie prościej użyć EEPROM.put i EEPROM.get ? Możesz zapisywać struct z dowolnymi typami zmiennych. Pozdr
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
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:...
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;...
http://obrazki.elektroda.pl/6035825200_1... Witam, w chciałbym się podzielić moim ostatnim tworem jaki powstał z chwili potrzeby. http://obrazki.elektroda.pl/2685746200_1... http://obrazki.elektroda.pl/2820438100_1... http://obrazki.elektroda.pl/1850987000_1... http://obrazki.elektroda.pl/4784630600_1...
Jako że ostatnio wywaliłem sporo kasy na książki to moge co nieco zrecenzować: Najpierw wydawnictwo BTC. Jakość fizyczna książki jest bardzo dobra. Natomiast czytając je, mam wrażenie że to po prostu przedruk datasheetów na język polski + kilka komentarzy autora. Tak więc zawartości merytoryczne oceniam na przeciętne, bo skoro pół książki to datasheet...
http://obrazki.elektroda.pl/2246655800_1... Tym razem chciałbym Wam przedstawić kolejny miniprojekt, jakim jest moduł domykania szyb samochodowych. Wprawdzie rynek zasypany jest gotowcami, ale za chwilę wyjaśnię, czemu zdecydowałem się budować własny. W aucie, które posiadam są 2 elektrycznie sterowane szyby. W chwili, gdy nie pracują...
Witam, Możecie spojrzeć na ten kod (poniżej?) Problem jest taki że co bym nie robił zdarza się w niektórych wsadach że jakaś strona pamięci zostaje zapisana samymi 0xFF. (wgrywam wsad potem sprawdzam programatorem poprawność). Procesor Atmega32; 4mhz (RC); UART 9600 ////////////////////////////////////////... /*...
Przy załączeniu napięcia atmedze na wyświetlaczu zamiast oczekiwanego napisu pojawiają się randomowe śmieci. Przy zwyczajnym resecie wszystko jest ok. Z resztą najlepie to widać na filmiku: //MAIN--MAIN--MAIN--MAIN--MAIN--MAIN--MA... portSHORT main(void) { //Inicjalizacja...
Nie rozumiem do czego służy ta dodatkowa zmienna 8 bajtów na początku pamięci. Tak naprawdę to 9 bajtów (8 bajtów zmiennej typu string + bajt 0 jako znak końca string'a). To pominięcie początkowego obszaru EEPROM, który jest najbardziej narażony na błędy zapisu podczas resetów uC. Możesz też dodać w programie: [syntax=vbnet]Reserved = "Reserved"[/syntax]...
witam mam taki maly problemik chcialbym przeslac zdeklarowana tablice zmiennych typu string do pamieci seregowej eeprom z transmisja pojedynczych bajtow nie ma problemu ale sie zastanawiam jak przeslac ja cala tablice na raz licze ze ktos z sznownych kolegow podsunie mi pomysl a moze gotowe rozwiazanie pozdrawiam
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...
Witam Pisałem w C pod wiele procesorów w różnych środowiskach ale to co robi keil powoduje że podnosi mi się ciśnienie. Problem banalny wypisanie zmiennych przy debugowaniu przez printf. Procesor ADuC845, Keil C51 V8 sprintf/printf keila ma problemy z najprostrzą konwersją zmiennych float na stringi. Cały kod testowy: #include <stdio.h> #include...
zamiast TIMSK1 użyj TIMSK gdzie znajdziesz ICIE1 PSRSYNC w M32 nazywa się chyba PSR10 i jest w SFIOR a nie w GTCCR jak w M168 Tak, to dało rozwiązanie, że kod mi się kompiluje. Problem w tym, że na wejście dostaje sygnał 50 Hz (ramka trwa 20ms) a sygnały wysoki w przedziale 0-2 ms. Obojętnie jakie dam wypełnienie (0-2ms) to ciągle na z tego kodu otrzymuje...
Martech SBS Tools V3.0.0.3 What's new: Generating unlock codes for blocked Bios in notebooks, supported models: - HP / Compaq - Fujitsu Siemens (various models, depends on series (Amilo Xi, Pi, L) - Laptops based on Phoenix Bios (various models) - New GUI for whole application, new design and functions. Generating unlock codes, repairing batteries...
tehaceole Telefon to Siemens C55. Teorytycznie telefon powinien być kompatybilny z innymi obsługującymi komdy AT, ale coś mi się zdaję, że jakbym podłączył jakiś inny telefon (inny niż Siemens) to potrzebne by były drobne zmiany w kodzie. Sama komuniakcja jest bardzo upierdliwa.Ciągłe grzebanie w stringach, wyszukiwanie jakiś tam nawiasów, ogólnie...
Mam pewien problem. Polaczylem wyswietlacz HD44780 z atmega32. Korzystam z gotowej biblioteki Radowslawa Kwiecienia. Gdy laduje kod w taki sposob ze linkuje biblioteki z kodem glowym programu nie widze nic na wyswietlaczu, gdy natomiast wkleje kod z bibliotek do kodu glownego to wszystko dziala jak nalezy. Jaki moze byc tego przyczyna? Zalaczam moj...
http://obrazki.elektroda.pl/9531378400_1... Witam. Chciałem zaprezentować wykonany przeze mnie sterownik rolet okiennych wewnętrznych. Inspiracją do wykonania projektu było urządzenie zaprezentowane już jakiś czas temu: Założenia Głównym celem mojego projektu było automatyczne zasłonięcie okna po włączeniu światła w pomieszczeniu (po...
Jak zmodyfikować poniższy plik Makefile aby prawidłowo kompilował się projekt złożony z kilku plików .c ? Próbuje zbudowac projekt na bazie systemu operacyjnego AVRX, AVRStudio nie chce tego łyknąć. Dodano po 40 # Hey Emacs, this is a -*- makefile -*- # # WinAVR Sample makefile written by Eric B. Weddington, Jörg Wunsch, et al. # Released to the Public...
Witam wszystkich Problem, który przedstawiłem dalej występuje, choć opis w proponowanym linku jest dokładnie tym co próbowałem zrobić. Może ktoś mógłby (krok po kroku) wytłumaczyć mi co robi oraz jak wygląda dokładnie plik '.S' oraz (przede wszystkim) makefile. Myślę, że problem tkwi właśnie w pliku makefile (nie znam wszystkich opcji). Mam tylko jeden...
Witam, Do komunikacji z DHT11 używam od zawsze kodu Program Memory Usage :7712 bytes 94,1 % Full Data Memory Usage :127 bytes 12,4 % Full EEPROM Memory Usage :478 bytes 93,4 % Full EEprom i częściowo flash są zapełnione stringami używanymi w komunikacji z userem przez USART. Ponieważ nic sensownego nie przychodzi mi do głowy, zastanawiam...
Moze zle sie wyrazilem - nie tyle skladnia pozostaje dla mnie niejasna, co nie umiem stwierdzic, dlaczego nie jest generowany plik ELF, pomimo tego, ze w pliku make istnieje regula (chyba) za to odpowiedzialna. # MCU name MCU = attiny45 # Processr frequency. # This will define a symbol, F_CPU, in all source code files equal to the # processor frequency....
Tak powinien wyglądać plik Makefile: # Hey Emacs, this is a -*- makefile -*- #---------------------------------------... # WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al. # # Released to the Public Domain # # Additional material for this makefile was written by: # Peter Fleury # Tim Henigan...
Co znaczy "stworzenia pliku .o jest późniejsza niż pliku .c"? Bo data stworzenia .c jest wcześniejsza, ale data modyfikacji (jeśli była robiona) późniejsza. Dodano po 1 # Hey Emacs, this is a -*- makefile -*- #---------------------------------------... # WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch,...
# Hey Emacs, this is a -*- makefile -*- #---------------------------------------... # WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al. # # Released to the Public Domain # # Additional material for this makefile was written by: # Peter Fleury # Tim Henigan # Colin O'Flynn # Reiner Patommel...
Witam, Napisałem ćwiczebny program w C pod ATMega16. Składa się z pliku test.c oraz config.h . Wszystko w katalogu mfile. Środowisko WinAVR-20090313. Wszystko jest w porządku do czasu kompilacji. Wyskakuje mi błąd: make: *** No rule to make target `test.c.elf', needed by `elf'. Stop. > Process Exit Code: 2 > Time Taken: 00:01 Podejrzewam,...
Rozumiem ale pliki biblioteki nie są w jednym pliku podzielone są na poszczególne funkcje i kiepsko by było dodawać sporo plików. Mogbym użyć makefile z ktoregoś z projektu i wszystko jest ok ale nie podoba mi sie wyświetlanie w nim informacji o rozmiarze wykorzystanej pamięci to jest moj makefile: # Hey Emacs, this is a -*- makefile -*- #---------------------------------------...
Umieszczam kod ze strony radzia. HD44780.c [syntax=c] //--------------------------------------... // Wyświetlacz alfanumeryczny ze sterownikiem HD44780 // Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości // z dowolnym przypisaniem sygnałów sterujących // Plik : HD44780.c // Mikrokontroler...
Witam, mam prośbę, czy mógłby ktoś sprawdzić mojego Makefil'a, ponieważ podczas kompilacji wrzuca mi błąd o kodzie: avr-objcopy: 'main.elf': No such file make: *** [syntax=c]//sterownik wyswietlacza #include "HD44780.h" //usawiasz tam porty sterujące, nie musisz ogarniać kodu #include <util/delay.h> #include <avr/io.h>...
Moje problemy odbiegają od poprzedników ale temat zgodny, więc: Mam uP Atmega 8 oraz wyświetlacz zgodny z hd47780 2*16znaków. Gdy wrzucam jeden znak na wyświetlacz przy pomocy kodu niżej wszystko jest ok: while(1) { LCD_CLEAR; LCD_LOCATE(1,0); LCD_WRITE_DATA('d'); } return 0; } Mogę kilka takich znaków wrzucić...
Witam, znalazłem kiedyś program napisany w asemblerze do kodowania POCSAGu z portu com komputera. Program działa ok ale gdy podłączę mikrokontroler Atmega8 i wysyłam przez Uart komendy do kodera POCSAG to muszę robić przerwy 12 sekundowe pomiędzy wysyłaniem komend. Nie znam asemblera i mam pytanie co zrobić by nie czekać tych kilkunastu sekund pomiędzy...
eeprom stringi zapis stringi eeprom solaredge stringi
metalowa obudowa bębna pralki pacifica czujnik sonoff temperatura
sterownik świateł dziennych proste uklady elektroniki
Kontrolki w Fiacie Seicento przy włączonym silniku Podłączenie 3 grzałek 230 V do SSR na 3 fazy