https://obrazki.elektroda.pl/3043864800_... Ten niepozorny moduł opiera się o ESP32 C3 i oferuje 1.44-calowy, kolorowy wyświetlacz o rozdzielczości 128x128, sterowany przez protokół SPI. Tutaj pokażę, jak łatwo można zacząć z nim przygodę, jak można wgrywać mu wsad zdalnie (przez WiFi), jak wyświetlić prostą animację oraz porównam...
https://obrazki.elektroda.pl/1164711900_... Dla interfejsów miedzianych Ethernet typowym złączem jest RJ45 (8P8C) natomiast dla łączności optycznej urządzenia sieciowe najczęściej wyposażone są w gniazda na moduły SPF/QSFP. W zależności od modułu możemy uzyskać różne prędkości transmisji ale także zasięgi od setek metrów do wielu kilometrów...
https://obrazki.elektroda.pl/3743484600_... Witajcie moi drodzy Przedstawię tutaj mojego shielda (nakładkę) na Arduino UNO opartego o układ ENC424j600. Shield ten pozwala podłączyć Arduino do internetu bez żadnego lutowania, a nawet bez użycia kabelków i płytek stykowych. W temacie dam jedenaście pełnych przykładów jego użycia z moimi...
Chciałbym dzisiaj przybliżyć Wam odbiorniki sygnału GPS. Postaram się to zrobić na podstawie gotowego modułu który wykorzystuje do tego układ firmy U-BLOX a mianowicie układ o nazwie NEO-6 w wersji „M”. https://obrazki.elektroda.pl/5154679800_... Nie będę tutaj rozpisywał się na jakiej zasadzie działa pomiar pozycji odbiornika....
http://obrazki.elektroda.pl/6035089300_1... Moduł Arduino Yun jest świetnym sposobem, aby wejść w tematykę Internetu Rzeczy (IoT). Arduino Yun to niewielki moduł integrujący w sobie Linuxa na Układzie z światem Arduino. Poniższy projekt jest wprowadzeniem w tematykę Arduino Yun, oprogramowywanie sensorów w Pythonie i PHP oraz w tworzenie...
Witam Was. Mam takie pytanie, czy jest jakiś zamiennik tej funkcji ? Chodzi mi o to, że atof trochę miejsca zajmuje mi w programie, a niestety pamięć programu mi się kończy dokładnie to pamięć atmegi8. Lub inaczej jak łatwo zamienić char +0.00 i +10.00 na 0.00 i 10.00 oraz -0.00 i -10.00 na -0.00 i -10.00 na float, liczby są przykładowe chodzi mi jaki...
Zrobić całą obsługę OneWire na przerwaniu timera. Ja mam to tak zrobione na LPC17xx, podejrzewam, że ktoś to zrobił również na AVR, chociaż to nie aż tak proste, ze względu na krótkie czasy pomiędzy przerwaniami. A, i wyrzuć te float z programu - do niczego to nie potrzebne, a marnuje pamięć i czas procesora. Jeśli bardzo chcesz mieć te dziesięciotysięczne...
Problem wynika stąd, że liczby temperatury gdy zmieniają się z 4-cyfrowej na 3-cyfrową to całość przemieszcza się pozostawiając po sobie znak stopnia. Pamięć wyświetlacza nie jest czyszczona za każdym razem kiedy wysyłana jest nowa wartość i jeżeli jest krótsza to nie nadpisuje ona całości dłuższego napisu i zostają po nim ślady. Rozwiązaniem może być...
Sprawdziłem dzisiaj ten babol (na najnowszej wersji WINAVR)....i niestety ale nadal na wyświetlaczu widzę jakby się wieszał procek. String wrzucony na wyświetlacz, tuz przed wywołaniem funkcji dtostrf() miga :/ Zmiana z double na float tez nie pomogła. Dodano po 5 Dobra już chyba wiem gdzie tkwi problem :) Przekroczona pamięć programu tuz po dołączeniu...
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 Forumowiczów! Jestem uczniem 3 klasy technikum i już od pół roku zacząłem interesować się programowaniem uK. Pisałem w C bo to dla mnie prosty język. Ostatnio zadałem sobie problem (no dobra chcę zaszpanować przed kumplami :P). Chcę zrobić dobory rejestrator temperatury w pokoju. Wybrałem sobie uK ATtiny 2313, układ DS1820 (czujka temperatury)...
Wystarczy przeanalizować wygenerowany plik map i będzie wiadomo nie tylko ile pamięci wymaga program, ale także co tę pamięć zajmuje.
https://obrazki.elektroda.pl/6510354700_... Witajcie moi drodzy. Pokażę tu wnętrze inteligentnego gniazda Tuya LSPA9 które oferuje pomiar zużytej energii elektrycznej oraz sterowanie przez WiFi, a następnie omówię jego wewnętrzny protokół komunikacji z układem scalonym mierzącym energię elektryczną. Następnie pokażę jak zaimplementowałem...
Witam U mnie ta funkcja dtostrf zabiera sporo pamięci, napisałem własną, która zabiera 5 razy pamięci programu: //Konwersja float to str void ToString(char *dest, float value) { //format A.BB long A=0; long B=0; A=value; B=value * 100; B=B-A*100; char sA[3]; char sB[6]; itoa(A,sA,10); itoa(B,sB,10); strcat(dest,sA);...
Sory, ale operacje na floatach żrą pamięć ale programu, float w RAMie zajmuje 4 bajty (najczęściej bo to też zależy od standardu zapisu). Nie rozumie tylko dlaczego znaki deklarujesz na floatach? Jeżeli możesz to wpakuj tu kawałek kodu do tego, może da się to zrobić prościej.
https://obrazki.elektroda.pl/8064219100_... Witajcie, dzisiaj przedstawię jak okiełznać kolejny chiński mikrokontroler WiFi+Bluetooth, a dokładniej W800-C400 od WinnerMicro. Na ten moment można go kupić za około 10 zł, z kolei płytkę startową z nim już za 25 zł i obie te ceny uwzględniają już przesyłkę. Oczywiście nie będę tu korzystać...
Ale jemu nie brakuje całego retarget, tylko sbrk, bo w newlib większość funkcji które robi coś z liczbami float alokuje dynamicznie pamięć. Dobrze, ale skoro mówimy o atoi i atof, to kolega bimbarabam pewnie nie wie, że może używać printf - powiedzmy z portem COM w roli głównej, albo zrobić sobie dostęp przez systemowe funkcje w stylu fopen/fread.......
Witam. Mam tablice float'ow (okolo 25 elementow) przyklad: const float PROGMEM tab[] = {0, 2.3333, -9,3344, -3,013E-02, .... }; teraz chcialbym wyciagac te elementy z obszaru programu czyms takim : pgm_read_dword_near(&tab[0]&... tak kombinuje ze moze unia to pociagnie: union float_ { float a; int b[2]; }...
Jakaś zmienna zmiennoprzecinkowa: "float" lub jeśli będziesz korzystał z biblioteki math to wtedy lepiej "double". Trzeba tylko pamiętać że jest to dość "kodożerne". Wiąże się to z działaniami na zmiennych wielobajtowych. Z tego co testowałem avr-gcc w tym zakresie, to jak chcesz oszczędzić pamięć programu lepiej przechodzić na stały przecinek. Ma to...
Zamiast liczyć coś na floatach (typ Single w BASCOMie) to licz na integerach (tyle że dane trzeba będzie przeskalować w górę aby mieć symulacje części ułamkowej). Od razu co najmniej 1KB mniej ze względu na brak bibliotek do floatów, ze 2 razy mniej kodu na każde wywołanie funkcji, 10 razy szybsze działanie no i mniejsze zużycie RAMu. Program w EEPROMie...
Tu masz coś o sbrk(), ale dla innego skryptu linkera, więc nieszczególnie Ci pomoże. Twój jednak wygląda mi na dobry (pozatym, że heap_ptr można zainicjalizować normalnie, bez tego if() ). Jak chcesz uciszyć warningi o nieużywanej zmiennej, to wystarczy na początku funkcji zrobić - _s_r = _s_r i po problemie. http://www.elektroda.pl/rtvforum/topic14...
Witam potrzebuje do wykonania FFT na procesorze TMS320F2812 wrzucić do pamięci programu tablice sinusów zawierającą 512 liczb typu float, mój problem polega na tym jak to zrobić? Nie moge sie doszukać konkretnego polecenia... stąd prosze o pomoc forumowiczów.
:arrow: Strikerer w Twoim przypadku wybór jest ograniczony aczkolwiek polecam program o nazwie: FMA to potężne narzędzie do edycji telefonu dzięki czemu użytkownicy mogą łatwo zarządzać wszystkimi danych osobowych przechowywanych w swoich telefonów, przez szereg różnych metod połączeń. FMA umożliwia łatwe zarządzanie Spis telefonów (zarówno SIM i pamięci...
Dziękuję za pomoc - zastosuje zewnętrzne napięcie odniesienia oraz wzmacniacz operacyjny. Mam pytanie o liczby float. Jeżeli zależy mi na dokładności i nie ma znaczenia czy program zajmie 3% czy 30% pamięci to mogę użyć float czy raczej są inne sposoby obliczania liczb ułamkowych?
Akurat nie o zmienne globalne chodzi... Chodzi o to że podając stałą do tych funkcji zostanie ona przeliczona na etapie kompilacji na ilość... napiszemy tików. Jeżeli natomiast podjesz zmienną do funkcji opóźnienia to niestety ale może ona z założenia może się zmienić w trakcie pracy programu i wtedy uC musi na żywo obliczyć ilość tych ticków. A jak...
Witam! Myślę, że warto tutaj skorzystać z wskaźników do tablic i utworzyć tablicę tychże wskaźników np: TYP *(*t)[] i odwoływać się do tak zdefiniowanej poprzez: (*t)[wiersz][kolumna] [syntax=c]typedef float TYP; /* w miejsce TYP wstawiamy dowolny typ */ /* i definiujemy funkcję */ TYP *(*alokuj(int iletablic))[] { int i; TYP *(*p)[]; p = malloc(sizeof...
Żadnych floatów, same operacje na typach uint8_t oraz C-stringach. Dużo danych w pamięci programu...r
Witam. Potrzebuje programu, który by pokazywał wartość liczby float w formacie HEX, tak jak to zapisuje w pamięci. To samo tyczy się innych liczb ze znakiem. Np cyfra 1 w float to 0x803F w HEX, czyli 32821 dziesiętne. Kompilatory to liczą, ale ja potrzebuje sam to liczyć (programuje mikrokontrolery). Czy jest gotowy program (jakiś kalkulator), czy muszę...
Przeniosę to przerwanie i tablice do plików .c. Ale wtedy w pliku głównym .c mam includować plik przerwania .c? Myślałem, że tam inkluduje się tylko pliki .h Nie musisz include'ować pliku .c, a nawet nie powinieneś. W Makefile dopisz go tylko do plików źródłowych (SRC = $(TARGET).c przerwanie.c inny_plik.c itd.) a linker odwali resztę roboty. Zostało...
nie pytajcie się mnie o jakieś szczegóły 0. Załatwione :) Ja nie będę pytał. 1. Nie liczenie wcale nie nastąpi. 2. Nie, O będzie miało stale wartość 0. 3. Daje to tyle, że wynik będzie z sufitu. A teraz kilka słów wyjaśnienia: Ad.1. W funkcji main, masz pętlę opartą o while(1). Ta pętla zostanie przerwana tylko brakiem zasilania. Program nigdy nie...
Za często nie używam zmiennoprzecinkowych i myślałem że float to 2 bajty. Teraz działa: eeprom_write_block((float *)&wynik, (float *)0x0, sizeof(wynik)); eeprom_read_block((float *)&wynik, (float *)0x0, sizeof(wynik)); Chodź przy funkcji write wykorzystanie pamięci programu wzrasta o 10%...
tą metodę i tak mi zostało. float i double sprzyja rozrastaniu się bajtów w kodzie Nie pojmuję twojego rozumowania. Przecież float to tylko 4 bytes w SRAM , a uproszczony kod programu zaoszczędza o wiele więcej pamięci FLASH. Co do przydzielania wielkości tego bufora Bierzesz tyle ile potrzebujesz. Wartość określająca rozmiar tablicy array musi byc...
Co należy wpisać chcąc używać wersji bez floatów? To zależy jakie robisz obliczenia. Pokaż odpowiednią część programu. Po komunikatach z kompilacji widzę, że dot. DS18B20, to zapewne szukasz tego: http://mikrokontrolery.blogspot.com/2011...
Mnożąc zmienną typu WORD przez stałą CONST wychodzi niedokładny wynik. Np: WORD = 200 x CONST = 0.0025 = SINGLE = 0.499999933. Dokładność obliczeń zmiennoprzecinkowych jest kwestią długości (i formy) reprezentacji liczb zmiennoprzecinkowych. Z oczywistych względów w ośmiobitowych procesorach z małą pamięcią reprezentacja FP nie może być zbyt długa...
Float jest tym hexem 4-bajtowym przez cały czas, tak jest zapisywana i odczytywana w pamięci uC, to tylko Ty widzisz jej wydruk na UART czy ekran w formie przetworzonej do tekstu jako liczby dziesiętnej z dwoma miejscami po przecinku, bo taka jest pewnie domyślna konfiguracja funkcji do drukowania float w wybranym programie, podczas zamiany na tekst,...
A jak deklarujesz np zmienną w pamięci FLASH ??? uint8_t PROGMEM a = 2; podobnie dla EEPROM'a uint8_t EEMEM a = 2;
Dziękuję wszystkim za pomoc i cenne uwagi :) Temat zamykam, gdyż wyświetlanie wartości ułamkowych udało się załatwić poniższą funkcją: [syntax=c]void LCD_DISP_TEMP(void) { unsigned int _ct1; unsigned int _ct2; unsigned char i; unsigned char num[3]; _ct1 = ((temp - 560) / 2) - 1; _ct2 = (((temp - 559) * 500) % 1024) / 10; for (i=0; i<2; _ct1/=10 ,i++)...
Dr.Vee : Ten link który podałeś jest "trochę" obszerny, ale zapewne wyczerpujący. Jakbym to przeczytał i pojął to zapewne zrobiłbym doktorat i nazywał się Dr. Kaktus. :) O tym że float może się mylić to znaczy że zaokrągla sobie ułamki i czasem może to być przyczyną błędnego wyniku zdawałem sobie sprawę od dawna, ale mimo że przeczytałem kilka książek...
Kol. JacekCz podpowiedział Ci również aby użyć funkcji itoa() - ona powinna być bardzie efektywna niż sprintf (co ja również pod koniec stwierdziłem) Oczywiście mam na myśli objętość tej funkcji w pamięci flash. Sprawdź teraz (gdy nadal masz sprintf) po kompilacji - zapewne niewiele mniej miejsca to wszystko zajmuje. Na obrazku masz podkreślone bloki,...
na załączonej płytce z kablem są tylko niezbędne sterowniki, program natomiast floAt's Mobile Agent łączy się z telefonem ale można tylko zarządzać bazą adresów oraz sprawdzić parametry techniczne (pamięć, stan baterii itp)
Powiedzmy, że interesuje mnie np. adres w pamięci: 0x0C200001. Mogę zrobić zatem wskaźnik, który będzie przechowywał ten adres. Wyglądałoby to w ten sposób: [syntax=c]float * a = (float*)(0x0C200001);[/syntax] Biorąc pod uwagę zacieranie się granic pomiędzy wskaźnikami i tablicami coś takiego będzie normalnie działało: [syntax=c]a[0] = 9.678; a[1] =...
Wygląda na rozkazy 32-bitowe co przekłada się na to, że jeden rozkaz ma 4B więc tak by się to składało. Więc z grubsza można przyjąć, że zależy to od bitowości mikrokontrolera. 8 bitów -> rozkaz ma 1B, 16 bitów -> 2b, itd. Trzeba mieć na uwadze, że jedno polecenie podczas programowania ma nie koniecznie 1 krok. Np. dzielenie dwóch liczb float w STM32...
Ok, chyba się pomyliłem z tym że nowszy kompilator będzie lepiej działa. Po prostu nie użyłem takich samych parametrów dla kompilatora i linkera jakie były w projekcie. Ściągnąłem sobie Eclipsa otwarłem projekt i przy takich samych parametrach również wyskakuje błąd, że za mało pamięci. Usunąłem "-lprintf_flt" i się zlinkował ale to nie tędy droga bo...
Witam, napisałem program w C ze wstawkami z Assemblera. Trochę poczytałem o SSE i zabrałem się do pracy, ale wyskakuje mi następujący błąd: asm operand 1 probably doesn't match constraints Niestety nie widzę błędu w swoim kodzie. [syntax=c] #include <stdio.h> #include <stdlib.h> #define sizeOfNumbers 10 #define randSize 1000 struct vector...
MAM!!! Wartości to są float, 32 bity! Taka procedura w Pythonie: Dodano po 17 Jeszcze raz cały program odczytujący kilka podstawowych danych z miernika:
Na AVR-ach poza parametrami funkcji na razie wogóle zapomij o const bo temat jest dość śliski. Proponowałbym jednak zaprzestać wypisywania tego typu "teorii". Używanie const jest ogólnie przyjętą normą i to, że akurat na AVR nie są umieszczane w pamięci programu automatycznie nic tutaj nie zmienia. Specjalnego traktowania wymagają tylko zmienne zadeklarowane...
Witam, Potrzebuję wyświetlić wynik pewnego działania mat. z dokładnością do 3 miejsc po przecinku. Przykładowy program (pomijam obsługę LCD)wygląda np tak: int a=4321,b=1234; float wynik; void main() { wynik=a/b; } Powyższy kod po kompilacji avr-gcc, zajmuje mi 'jedyne' 1,3kB pamięci procka! Jeśli operuję tylko na typach int to program...
Witam! Ciekawi mnie, co jest na zakładce "Modbus"? Adres urządzenia w sieci oraz prędkość komunikacji. Niestety na nic innego nie starczyło już miejsca w pamięci programu. Co do liczb ułamkowych to w projekcie nie została użyta ani jedna liczba float. MODBUS pracuje na 16bitowych rejestrach a dane ułamkowe są to po prostu liczby całkowite które trzeba...
Kurczę lukaszd82 mam kolejny problem tym razem z pamięcią w nano wgrywam poniższy program do odczytu temperatur i wyrzuca mi poniższy błąd masz jakiś pomysł ?? Kod: #define BLYNK_PRINT Serial #include <UIPEthernet.h> #include <BlynkSimpleUIPEthernet.h> #include <DallasTemperature.h> #include <Wire.h> #include <OneWire.h>...
(at)Zumek Mógłbyś podpowiedzieć mi troszkę co do tej procedurki do obsługi klawiaturki ? Jeśli wykonujesz jakieś powtarzalne operacje(wykonywanie identycznego zadania , ze zmiennymi parametrami) , to stosuj pętle lub funkcje , a nie wszystko na piechotę ;) //... #include <avr/pgmspace.h> //... prog_char tz[][4]={\ {'1','4','7','*'},\...
pamięć float float pamięć float double pamięć
centralka domofonu impuls vectra paliwa wymiana bęben konica
samsung qe58q60tau samsung qe58q60tau
Elektryczny wózek inwalidzki 24V a napięcie 25V Wózek inwalidzki z baterią 29.2V a działanie przy 24V