Ale... float to przecież bity w pamięci! To co one przedstawiają, powinno cię mało obchodzić, gdy chcesz to zapisać w pamięć nie ulotną... Jeśli float ma 4 bajty (a chyba ma), to wystarczy dobrać się do tych czterech bajtów intem... [syntax=C] float ulamek=54.75701; unsigned int *ple=(unsigned int*)&ulamek; ZapiszZmienną([adres],*ple); //tu wlasnie...
Wystarczy przeanalizować wygenerowany plik map i będzie wiadomo nie tylko ile pamięci wymaga program, ale także co tę pamięć zajmuje.
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.......
Zrób sobie unię ze zmiennymi typu int o takim samym zapotrzebowaniu na pamięć co float: [syntax=c]union { float temperatura; uint32_t in; uint8_t buf[4]; } flo_to_by;[/syntax] Jak masz gotową funkcję to wyślij to jako zmienna "in" a jak nie to kolejne bajty z bufora "buf".
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.
AVR nie ma operacji na liczbach zmiennoprzecinkowych (float). kompilator musi je jakoś emulować. jeśli nie jest to absolutnie konieczne nie stosuj zmiennych float.
Jakim napięciem zasilasz pamięć? Jaką masz szybkość transmisji ustawioną?
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
Nie analizowałem poprawności tego fragmentu kodu. Jednak jest to bardzo dobry pomysł. Zrób sobie funkcję, która w argumencie przyjmuje np. liczbę milisekund. Po napisaniu takiej funkcji sprawdzisz sobie jej dokładność na symulatorze i ewentualnie skorygujesz inkrementowaną/dekrementowaną wartość. Funkcje biblioteczne opóźnień, np: _delay_ms przyjmują...
Chodzi raczej o wersję biblioteki, czy jest to libprintf_flt czy libprintf_min. Różnią się one wielkością (i funkcjonalnością). Być może krótsza z nich jest dla twoich potrzeb wystarczająca (nie obsługuje tylko float).
Tak, np. floAt's Mobile Agent'em
ed-ek czytanie ze zrozumieniem - sprawdzone i polecane kursy. Podbijam temat - potrzebuję nazwy sprawdzonych kursów(zamówiłem symfonie c++) Mam nadzieję, że zamówiłeś "Symfonię C++ Standard ", bo starsze wydania opisują głównie C++/ARM. Początkowo język C++ był dostępny w takim standardzie, w jakim opracowano ostatnią wersję kompilatora Cfront (tłumaczący...
O i tej informacji mi brakowało, że pierwsza liczba oznacza długość całego pola, a nie ilość przed przecinkiem. Chyba mnie zamroczyło i niedokładnie przeczytałem Minimum number of characters to be printed. If the value to be printed is shorter than this number, the result is padded with blank spaces. The value is not truncated even if the result is...
Tymi zerami zbytnio się nie sugeruj, bo czasami zamiast zer była jakaś okrutnie wielka liczba bez przecinka, a do tego często masakrowało całą pamięć. 4\/3!!
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]; }...
No właśnie chodzi o to że te wartości mam w tablicy i mógłbym przerzutować na float całą tablicę, ale nie mogę bo mam ograniczoną pamięć. Czy rozwiązanie z mnożeniem i dzieleniem.. tzn zwiększanie wartości x10, ew. x100 i potem wykonać rzutowanie pojedynczych elementów w pętli for i przetworzyć i wrzucić od nowa do tablicy short int z wartością przemnożoną...
Dziwne, że w ogóle coś sensownego robi. Instrukcja: [syntax=c]float x[1000];[/syntax] powoduje przepełnienie pamięci SRAM, której masz tylko 2 kB, a ta tablica potrzebuje 4000 bajtów.
Freddie Chopin: Tak jestem świadomy małej precyzji formatu half-float. Wysoka precyzja nie jest wymagana. Atom1477: Niestety bez informacji o pozycji przecinka nie mogę formatować na liczbę całkowitą. Pamięć ma przechowywać dane z różnych czujników pomiarowych za czym idą różne formaty typu xxxx.xx czy x.xxxxx. Kris68: Konieczność zapisu zmiennych float...
Przedewszystkim zrób to inaczej... po prostu... main() { char bufor[20]; ... funkcja(bufor, ...); } funkcja(char* bufor, ...) { } I w ogóle nie ma problemu. Zmienna tmp w ogóle jest nieporozumieniem. Przecież wewnątrz funkcji możesz sobie zadeklarowac tablicę o dowolnym wymiarze... funkcja(...) { char tablica[1000]; } A pamięć możesz zwalniać gdzie...
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...
Nie musi to być zewnętrzna pamięć, miała to być zewnetrzna jeśli miernik miałby być zrobiony kompletnie. Wtedy musiałbym przechowywać próbki 2x(200-300) przekonwertowane to typu float. Aby nastepnie przeprowadzić na nich pewne algorytmy i wyliczyć impedancje pętli. Jednak na tym etapie wystarczy mi pamieć jaką posiada procesor.
Witam! Piszę program który ma mniej więcej obliczać mi ile paliwa jest wtryskiwane do cylindra w samochodzie. Ale chciałem aby wartość uśredniona już nie była tracona wraz z odłączeniem zasilania, tak więc trzeba ją do EPROM'a zapisać. Robię to tak: float wynik = 0; eeprom_write_byte( (float *)0x0, wynik); wynik = eeprom_read_byte(...
W przypadku sumowania takich temperatur musisz pomnożyć ilość pomiarów przez maksymalną temperaturę (a dokładniej przez wynik z dzielenia maksymalnej temperatury przez dokładność) i wtedy otrzymasz długość mantysy. np. ilość pomiarów 24h*60min*60sek=86400 max. temp 200 C dokładność 0,5 C max. liczba = 86400*(200/0,5)=34.560.000 czyli max. liczbę można...
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...
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ę sam go napisać? Jeśli liczby floating point są zgodne z IEEE 754, to możesz użyć np [url=http://babbage.cs.qc.cuny.edu/IEEE-... kalkulatora....
Miałem wcześniej działający układ ze zmienną typu float , i użytą funkcją sprintf ale są bardzo pamięciożerne i ze względu na małą pamięć mojego atmega8 chciałbym to w jakiś sposób obejść.A odnośnie tych dzieleń to nie mój pomysł ale słyszałem że jest to potrzebne aby wyświetlić wynik pomiaru po przecinku.Co musiałbym zmienić lub dodać to mojego kodu...
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...
W załączonym felietonie opisałem architekturę superkomputera do wykonania w warunkach garażowych. Przykładowa implementacja za mniej niż 105kPLN: -rzeczywiste 60TFLOPS (float 32b.). -110GiB pamięci operacyjnej, -5.76TB pamięci nieulotnej, -intranet 10GE, -1.11 GFLOPS/PLN, -28.1 GFLOPS/W.
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...
Można też po prostu nie rzutować, tylko "paskudnie przypisać float do unsigned long int. unsigned long int xi; float xf; xi = xf; Ale jest to rozwiązanie mało eleganckie i o ile dobrze pamiętam powoduje wygenerowanie przez kompilator ostrzeżenia. Sposób ze wskaźnikami, czy unią jest dobry, ale trzeba uważać na sposób przechowywania danych w pamięcie...
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...
hehe... własnie zauważyłem.Myslalem,ze analogRead() to funkcja z bibliotek a tu trzeba ja samemu napisać.To przez to,ze w rożnych artykułach używali tej samej funkcji. Ten float to mi tez za ciekawie nie wyglądał,a wiadomości spod linku napewno wkuje na pamięć. Dzięki wielkie za pomoc i przepraszam za taka głupią wpadkę. Pozdrawiam
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...
A jakie tu można dać wskazówki? Programowanie na mobilne w .NET dużo się nie różni od programowania na PC. Trzeba tylko pamiętać, żeby deklarować pamięć dla obiektów tylko wtedy, kiedy są one potrzebne, zwalniać niezarządzane zasoby, ograniczać liczbę wątków no i nie stosować typu float.
dziękuje kolegom za pomoc;)
Wszystkie z floatami są pamięciożerne.
Nie znam aż tak dobrze C na poziomie OS, ale na pewno zły typ dobrałeś do danych. Powinien to być float, aby była zmiennoprzecinkowość, ale nadal na 32-bitach standardowo dla gcc, więc oszczędnie cd pamięci RAM. Natomiast ogólny rys wylonania musisz mieć taki, że każdy klient przygotowuje dane sobie ze stacji, mając te dane musi oczekiwać na zezwolenie...
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...
Atom - źle piszesz. RPi4 ma procesor o rdzeniach Cortex-A72, a nie A53. 53 były w RPi3, a porówywalny wydajnościowo SoC do dostania od ręki masz Allwinner H5 i H6 za jakieś 8-10$. Zasadniczo do dostania od ręki coś porównywanego z RPi4 (wcale nie demon prędkości) to np. popularne RK3399 z Rockchipa. Albo coś "atomowego" ulv ;) Albo mediateka. Możliwości...
błąd jaki zauważyłem to definicja "main" powinna być z dwoma argumentami, czyli "int main(int argc, char*argv[])". Wynika to z faktu, że biblioteka SDL2 podmieni ją na swoją. Dokładniej to SDL definiuje makro "main" jako "SDL_main" i jest to typ funkcyjny dwuargumentowy "int(*)(int,char**)". goto? Niektórzy tego nie lubią i uważają za zło. Jeżeli to...
Panowie postanowiłem wykonać test wbudowanych w atmel studio typów fixed point vs float. Na razie tylko samych _Accum z saturacją ale to co zobaczyłem nie napawa optymizmem gdzie jest błąd?Dodam że -atmel studio 7, -wewnętrzny zegar 8MHz -Atmega16. -Do pomiaru czasu używam timer 1. Najpierw kod, testujemy 4 działania +,-,*,/ dla typu _Accum i float....
Nie może Cię interesować tylko C - tak czy siak będziesz musiał oglądać wygenerowany kod i połapać się, czy już jest wystarczająco dobry, czy nie. Oczywiście CFLAGS += -Os Wszystkie funkcje, których nie eksportujesz z modułów (są używane tylko lokalnie) zaznaczasz jako static. To samo z danymi globalnymi wewnątrz modułu. Uważaj na promocje arytmetyczne...
Dodano po 14 Przepraszam, to jednak działa, po prostu sypnąłem się w kodzie gdy przypisywałem wartości do wektorów, dwa razy przypisywałem do tego samego więc drugi ciągle miał wartości 0, a więc dodawało dobrze. Mam jeszcze wytyczną co do konstruktora kopiującego, że nowo utworzony obiekt nie może współdzielić pamięci z obiektem źródłowym, czy wystarczy...
Xdata i pdata to obszary pamięci zewnętzrnej, adresowane odpowiednio 16 i 8-bitowo. Natomiast pamięć wewnętrzna to obszar data - pierwsze 128 bajtów (adresowanie bezpośrednie), oraz idata - całe 256 bajtów wewnętrznego RAMu (adresowanie pośrednie). Tak więc użyj idata a nie pdata.
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? Zewnętrzne nap. odniesienia to dobry pomysł, zewnętrzny WO to IMHO pomysł...
To ty się mylisz. rejestr to nie zmienna Operacja jest wykonywana, ale zmienna nie istnieje i nie da jej się śledzić. No koledzy to już jest herezja Apage satanas !!! :D Rejestry w tym momencie zmienna - float i struktura tez są przechowywane w rejestrach i nie mają swojego miejsca w pamięci. Debuggery są na tyle mądre, że rozumieją jaka jest reprezentacja...
Witam, Kolega tmf ma całkowitą racje, na AVR unikamy operacji float jak ognia. Nie dość że koszmarnie wolne to jeszcze zjadają sporo flash. Lepiej zrobić kilka operacji mnożenia i dzielenia niż jedną na typie float. Poza tym AVR GCC nie obsługuje liczb typu double, traktuje ją tak samo jak float (tyle samo bajtów w pamięci zajmuje double co float) mimo...
Wartości naturalne - miałem na myśli częstotliwości bez części setnych (napisałeś 13,75 Hz), Odwzorowanie bliskie zeru - myślałem o tym, że gdy częstotliwość sygnału wynosi 996 Hz to zamknięcie wszystkich okresów w tablicy 400-stu elementowej spowoduje że sygnał będzie zawierał po prostu za mało wartości (na jeden okres nie przypadnie nawet 1 próbka)...
Funkcja Dec2Bcd zamienia liczbę ba kod BCD. Gdybyś nie wiedział to funkcja dająca odczyt z czujnika SHT75 daje liczby typu float. A ja nie pisze progamu na PC-ta, muszę optymalizować zużycie pamięci.
No dobrze. Sprawa wygląda tak, że 0,001 jest w momentach kiedy odrysowywany jest mały fragment kontrolki, np. jak rozwijasz listę i ona przesłani kawałeczek formy, a nie tylko po uruchomieniu 0.9 jest jak odrysowujesz cały ekran, a zmiana koloru to takie właśnie całościowe odrysowanie. Nadpisując metodę OnPaint bierzesz na siebie odpowiedzialność za...
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:
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...
Właśnie wymyśliłem dlaczego nie da się tego wykonać. Funkcja pobiera wskaźnik i tworzy jego kopię (tak jak kopiuje wartość jeśli pobiera zmienną). Czyli w tym przypadku pobiera NULL, co jest tak na prawdę niczym (nie odnosi się do żadnego miejsca w pamięci). W tym przypadku można by po prostu zaalokować pamieć w mainie, ale w rzeczywistości próbowałem...
Witam, Potrzebuje zamienić liczbę w formacie double (float) na stringa aby go wysłać przez RS232. Chciałem użyć funkcji ecvt z biblioteki stdlib, ale mam problem z linkowaniem, dostaje: Linking: main.elf arm-none-eabi-gcc -mcpu=arm7tdmi -I. -gdwarf-2 -DROM_RUN -DAT91SAM7S256 -Os -Wall -Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls...
Tak, wejście skonfigurowane w ten sposób: [syntax=c]GpioInit(GPIOC, GPIO_Pin_6,FLOAT_IN_NO_IT)[/syntax] przybliżona komenda bo piszę obecnie z pamięci. Gdy zmieniałem na FLOAT_IN_IT to wchodziło mi w przerwanie od zmiany stanu na pinie, czyli potwierdzenie ze zmienia się stan na tym pinie ale licznik timera dalej się nie zmieniał.
Masz 256kB pamięci flash i rezygnujesz z float bo konwersja zajmuje 1.8kB? 4\/3!!
Pokaz jak wyswietlasz napis, bo tu podejrzewalbym blad. Na jaki procesor to kompilujesz? Jak z zajetoscia pamieci? Nie przekroczyles ilosci SRAM? BTW, zdajesz sobie sprawe z tego, ze na AVR double==float?
Zapominasz, że w tej pamięci nie tylko te "floaty" siedzą (ściślej - ich obsługa) ale również obsługa uarta oraz ADC. To że masz 3 zmienne typu float o niczym nie przesądza. Przy jednej miałbyś podobnie. Oprócz tego procedura zamiany float-->str - też zajmuje swoje. W twoim przypadku wystarczyłoby abyś mnożony wynik, zapisał do liczby typu int. sprintf...
cześć. a jak zapisywac i oczytywać zmienne typu float? (do eepromu oczywiście)
Tak jak poprzednio, czyli funkcja zamiast float zdeklarowana jako unsigned long . Należy zmienić także wszystkie zmienne z tym związane. Funkcje zawierające zmienną float dla mikrokontrolera 8-bitowego to pożeracz pamięci.
Mam np. następującą strukturę: [syntax=cpp-qt] struct telefony { char marka[20]; float przekatna_ekranu; float waga; }; [/syntax] Teraz deklaruję oraz inicjalizuję tablicę struktur o nazwie np. nokia: [syntax=cpp-qt] telefony nokia[3] = { {"6300", 2, 91}, {"N82", 2.4 , 114}, {"Lumia 520", 4, 124} }; [/syntax] A jak najwygodniej zrobić podobną inicjalizację,...
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);...
Tylko stosując arytmetykę stałopozycyjną, czyli rezygnując z typu float single itp.
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...
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ć...
...Potrzebuje uzyć funkcji sprintf aby nie wyswietlać wszystkich liczb po przecinku... Do sformatowania-konwersji jednej zmiennej typu float , sprintf() wcale nie jest Ci potrzebna( armata i wróbel :) ).Funkcja sprintf() jest baaardzo uniwersalna i jednocześnie baaardzo pamięciożerna.Zainteresuj się funkcja dtostrf() , bo do Twoich celów nadaje się...
GTX 460 768 MB Jednostki cieniujące 336 GPC 2 Jednostki teksturujące 56 Zegar rdzenia 675 MHz Moc obliczeniowa (float) 907 gigaflopów Szyna pamięci 192 b Przepustowość pamięci 80,5 GB/s Liczba tranzystorów 1,95 mld Nowy GTX 460 jest około 5-6% wydajniejszy od Radeona HD 5830. Cena ma wynosić około 880zł. Podobno bardzo dobrze się podkręca jest wiarę...
Dzieki wielkie zadziałało :) alez to pozera pamieć 1.67kB mniej :/ pozdrawiam
Jeśli znasz rozmiar tablicy robisz coś takiego: [syntax=c]float (*ptr)[x][y] = (float (*)[x][y]) addr;[/syntax] I potem używasz: [syntax=c]float f = (*ptr)[x][y];[/syntax]
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...
Witam serdecznie! Chciałbym się dowiedzieć czy istnieje jakaś możliwość odgórnego zdefiniowania zmiennej typu float/double w pamięci EEPROM przy jednoczesnym nadaniu jej wartości. Do tej pory robiłem to w ten sposób, ze tworzyłem zmienną w eepromie i za pomocą te funkcji: void eeprom_write_block(const void *src, void*dst, size_t n) zapisywałem...
To inaczej: nie wiem jak to się ma do lowpower, ale widziaiłem porównania gdzie taki C++ i zastosowanie algorithm dawało mniejszy kod niż C i for. Sam robiłem nawet na AVR takie porównania i napisanie takiego automatu skończonego w C++ (polimorficznie, używając state machine pattern) dawało w sumie 4 bajty narzutu w zamian za ogrom czytelności. Czy...
Dzięki, pomogło. Lecz natchnąłem się znowu na pewien problem. Otóż mam klasę: [syntax=cpp] class srednieocen { private: string imie; string nazwisko; float srednie; public: srednieocen() { imie = "pusty"; nazwisko = "pusty"; srednie = 0.0; } void create(srednieocen**&, iloscuczniow*); }; [/syntax] Do nie w funkcji main tworzę: [syntax=cpp] srednieocen**...
http://hell.pl/agnus/slowniczek.html context storage -- pamięć kontekstowa - zapamiętywanie kontekstu. w systemach pamięć kontekstu to wyznaczony przez jądro fragment pamięci, w którym procesor przechowuje rejestry procesu, zawartość FPU (floating point unit - koprocesor - procesor arytmetyczny), rejestry segmentowe, itd.. tz wszystko co określa aktualny...
W jakim formacie przechowywane są wagi neuronów, float czy stałoprzecinkowe? Jeżeli stałoprzecinkowe, to coś dużo pamięci wyszło na sieć neuronową. To tylko zwykłe mnożenie :)
Co ma branch predictor do wyższości C nad C++? Kolejne odkrycie Ameryki to CCMRAM. SRAM tez ma dostęp w jednym cyklu. Różnica podstawowa polega ba tym ze do CCMRAM ma własne magistrale i nie ma dostepu DMA czyli średnio nadaje się do danych DSP, które to z reguły są właśnie tak zapisywane z ADC np. Tu musiałbyś dodatkowo ręcznie kopiować je ze SRAM....
Kiedy pozbędziesz się wszystkich float i operacji na nich zajętość pamięci spadnie o połowę. Po wyrzuceniu printf zapewne zyskasz jakieś następne 1.5 KiB. ;) Co powiesz na odpowiedź z AVR np. taką: B 1234 2345 6789 gdzie te trzy liczby to np. napięcia w mV.
Witam Przykładowo jest struktura ze zmiennymi o różnych typach [syntax=c]typedef struct { uint32_t a; uint16_t b; float c; } struktura;[/syntax] W pamięci jest to jakiś blok z danymi zajmujący prawdopodobnie 10 kolejnych bajtów. Niestety nie wiem jak całkowicie wypełnić taką strukturę 5-cioma słowami uint16_t (ważne) nie odwołując się bezpośrednio do...
Witam, mam pewien problem z wykonaniem działania mnożenie a następnie dzielenia przez liczbę dziesiętną odczytaną z eepromu. Sam odczyt z eepromu jest poprawny, wyświetlałem dla testu odczytaną wartość na wyświetlaczu i się zgadza z tym co zapisałem przed ponownym uruchomieniem uC. Jak w programie zdefiniuje stałą (np 0.123) i przez nią podzielę jest...
W moim przypadku korzystam z wew. pamięci xram. Efekt jet taki, że program pracuje stabilnie (całe sterowanie działa) tylko po załadowaniu stałych z szeregowego eeprom do wew. pamięci xram "gubią się-zerują?" dwie zmienne globalne typu float. Co najlepsze w pamięci eeprom są one na 100% a po wpisaniu na nowo tych zmiennych do xramu "nie znikają" i jest...
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...
Zawsze robie clean. Nie po zmianach, które wprowadziłem. To nie ma związku. W projekcie, w main() mam przygotowanie obszarów tablic, w których będą wykonywane transformaty fft. Zakomentowanie tego, co poniżej nie powoduje w/w błędów. Odkomentowanie powoduje błąd. [syntax=c]int dims_obraz[2] = {Ma,Na}; // dimensions of fft obraz int dims_znak[2] = {Ma,Na};...
Pewnie. A później amatorzy programowania dzięki takiemu podejściu zapisują proste zmienne jako float albo nie wiedzą jaka jest różnica dla działania programu pomiędzy dzieleniem przez 8 a dzieleniem przez 9. Wiedza o asemblerze jeszcze nikomu nie zaszkodziła czego nie można powiedzieć o niewiedzy. Odpowiedziałbym jednak cytatem, że "premature optimization...
Nwm czy w tym temacie moge pisać o programowaniu, ale czy ktoś się orientuje jak zaprogramować ATmege8 do termistora NTC 100k ?? Tzn. jest jakaś biblioteka czy muszę definiować po kolei stopnie i rezystancje ? Pisać można, ale tutaj możesz trafić na kogoś kto da ci same skomplikowane rozwiązania ;) Biblioteka na pewno jakaś jest, bo na wszystko są...
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)
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.
1. zmienna typu float/double zajmuje w pamięci odpowiednio 2 i 4 bajty w pamięci. Twój tok rozumowania jest błędny już na etapie założeń... W avr-libc którego używasz nie ma w ogóle typu double, a zmienna float nigdy i nigdzie nie zajmuje 2 bajtów. Dalej idąc, wysyłając "po bajcie" trafisz na taki problem, że program który to będzie odbierał niekoniecznie...
Tak, napięcie około 5V z komputera przez programator, mierzyłam i się zgadza. Te strony też znam już na pamięć praktycznie :D Także nie wiem tu chyba nie tkwi problem w złym podłączeniu pinów / elektroniki na płytce tylko cos w programie chyba... Dodano po 17 może zepsułam wyświetlacz :( moze coś źle wcześniej podłączyłam i się zjarał .... kuurcze...
Chciałem trochę wciągnąć syna w Arduino i zbudować z nim projekt gry PONG oparty na: https://michaelteeuw.nl/post/87381052117... Okazało się, że syn się dosyć szybko wykolegował z projektu twierdząc że XBOX jest ważniejszy, a jednak postanowiłem poświęcić kilka wieczorów i projekt dokończyć. W tym czasie oryginalny projekt ewoluował na tyle,...
Tak tylko nie chce korzystać z float, sprint itd musi to mało miejsca zajmować w pamięci.
Sama ilość stałych stringowych jest przerażająca - to też obciąża flash (pamięć programu) Stałe PROGMEN też. Ponieważ są publiczne (he he słowo static, podobnie jak namespace/using jest u miszczów arduino nieznane) , trudno spodziewać sie po kompilatorze dawania ostrzeżeń Niestety nie jestem w stanie sam tego zrobić dlatego poprosiłem o pomoc tutaj....
Zrób dynamiczną alokację pamięci. float **tab = new float *[3]; tab[0] = new float[rozmiar1]; tab[1] = new float[rozmiar2]; tab[2] = new float[rozmiar3]; // jakieś operacje na tablicy for(int i = 0; i< 3; i++) delete[] tab[i]; delete []tab;
Proszę o pomoc bo nie umiem sobie poradzić z poprawnym zwalnianiem pamięci alokowanej wcześniej na tablicę wskaźników wskazujących na tablice, zawartych w strukturze. Logicznym mi się wydawało usuwać pamięć w odwrotnej kolejności do tego jak była alokowana, ale o ile przy kompilacji błędów nie ma żadnych to przy uruchomieniu już są. Oto komunikat: ***...
uiAddress jest zadeklarowana na samym poczatku jako float uint16_t uiAddress = 0 ; i nie ma znaczenia czy podam zero na końcu czy 1 czy inną liczbę - ciągle się nie kompiluje To w końcu float, czy uint16_t? To są różne rzeczy. Pierwszym argumentem powinien być adres zmiennej w pamięci EEPROM - czyli zmienna typu wskaźnik na float. Spróbuj: [syntax=c]...
Float mam tylko przy temperaturach z 3 czujnikow ds1820 temperaturę mieści w 2-óch bajtach. Dziwne że Ty już potrzebujesz Float. Przemyśl tą część kodu.
http://obrazki.elektroda.pl/3265192600_1... Witam serdecznie. Na wstępie powiem iż jest to moja pierwsza konstrukcja jaką przedstawiam na forum i liczę na konstruktywne opinie. Podstawowe założenia projektu: 1. Zbudowanie "żarówki" (źródła światła) emitującego światło RGB oraz białe, 2. "żarówka" musi być zasilana z 230V i musi mieć...
https://obrazki.elektroda.pl/8545401100_... Mój poprzedni temat o Pierwsze kroki Jakiś czas temu publikowałem temat o https://obrazki.elektroda.pl/4535548900_... Wyszukujemy DHT. Biblioteka DHT wymaga też dodania Adafruit Unified Sensor Library, więc dodajemy obie biblioteki. Najpierw Unified Sensor: https://obrazki.elektroda.pl/1839946000_...
Dziękuję bardzo za odpowiedź. Już nie będę drążył tematu ale:-) "...Jedna komórka pamięci Flash składa się właśnie z takiego tranzystora, który pomiędzy podłożem, a bramką sterującą (Control Gate - CG) posiada odizolowaną bramkę pływającą (Floating Gate - FG). Raz umieszczone elektrony na FG mogą pozostać tam przez wiele lat pamiętając zaprogramowany...
Żadnych floatów, same operacje na typach uint8_t oraz C-stringach. Dużo danych w pamięci programu...r
dla flasha ostatecznie jednak użyłem swojej implementacji z biblioteki SPImemory i będę zapisywał dane w bajtach. Rozumiem, że w jakiś sposób chciałeś sobie uprościć kwestię adresowania zapisanych danych w zewnętrznej pamięci SPI. Sama biblioteka SPImemory wspiera również bezpośrednio zapis/odczyt float, string, różne typy int oraz tablice bajtów ....
pamięć float pamięć programu float float double pamięć
iskrownik ustawić świateł focus amplituner przygasa
polar cz340 stabilizator lm7812
Jak wyłączyć zmieniarkę CD w Citroën C3 Picasso? VW T6 - Błędy P0641, P0651, P0697, P06A3 po zgaszeniu silnika