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...
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...
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...
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...
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...
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...
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...
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?
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};...
Popieram poprzednika w całej rozciągłości - tak się nie robi! Ponadto, co Ci ten tryb binarny, który dodatkowo w systemach Posix-owych nic nie robi? Użycie write() nie ciągnie za sobą konieczności użycia trybu "binary". Zawsze zapisując dane do pliku należy serializować! Wyobraź sobie, że Twój program ktoś skompiluje i uruchomi na systemie 32-bitowym,...
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++)...
Tak się nie da niestety. Aby wołać funkcje kótre są w bootloaderze z alpikacji musisz mieć tablicę adresów tych funkcji w znanym sobie miejscu w pamięci (w tym że booloaderze). Np: [syntax=c] struct x; int func1(int, float); double func2(long long, double, float, struct x); /* * etc etc */ const struct { int (*func1)(int, float); double (*func2)(long...
Próbowałam z if else ale nie chce mi się skompilować... Proszę takie problemy zawsze ilustrować przykładem kodu, który to rzekomo nie działa. Czy chodzi może o problem z zapisem wykładniczym? Drobna uwaga, pętlą for wylatujesz poza tablicę, 31 iteracji a tablica t ma 30 pól. Do wychodzenia z pętli służy break . Zgodnie z podanym linkiem punkty 2 i...
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...
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: ***...
Miałem to samo. I zrobiłem tak:w avr studio wchodzimy Project->Configuration options->Custom Options->[Linker Options] i wklejamy "-Wl,-u,vfprintf,-lprintf_flt,-lm " ->Add->Ok. Po tym wszystkim zaczęło działać. Fakt, że zeżarło trochę flashki ale zależało mi na czasie a nie na pamięci... Mam AVRSTUDIO Version 4.18 Build 684
Na wszelki wypadek wyciąłeś tak mały fragment z programu, że trudno zgadnąć, co zepsułeś w deklaracjach danych. Używasz typu doble - to jakieś 16 cyfr znaczących. Nie przesadzasz z tą precyzją? Wiesz, ile to kosztuje czasu i pamięci? Na AVR double=float. Nie ma typu o podwójnej precyzji. Dodano po 3 IMHO niezależnie od innych powodów pokazany problem...
(at)grzegorzn - FPU w Cortex M jest 32bitowy, nie ma natywnych instrukcji na typie 64bitowym więc ich stosowanie na siłę uważam za nierozsądne. (at)_lazor_ nie wiem co to za pierdoły. Jaki "upscale" do 64bit? Przecież taka konwersja jest bez sensu, szczególnie, że domyślnie aktualnie do floating point używane są instrukcje SSE2 a nie x87. Niemniej jeśli...
https://obrazki.elektroda.pl/4269875400_... Oryginalny DeepSeek jest raczej za duży, by uruchomić go na domowym sprzęcie, ale repozytorium Ollama oferuje ciekawą alternatywę bazującą na dostrajanych (tj. trenowanych w oparciu o rezultaty większego modelu) modelach LLama i Qwen. Występują one pod nazwami deepseek-r1:1.5b/7b/14b/32b...
Kupiłem niedawno kartę graficzną Radeon HD X2600XT AGP posiadającą 512 mb pamięci i 128 bit. No i gdy zauważyłem że coś jest nie tak z chłodzeniem bo gdy grafika się nagrzała w grze wyłączał się monitor i dawało go dary później włączyć (teraz już to rzadko występuje). Włączyłem Everesta i tam pisało, że karta ma 256 mb i 64 bit. Ja od razu na stronę...
http://obrazki.elektroda.pl/9560019700_1... Naukowcy z Uniwersytetu w Carolinie opracowali nowe urządzenie, które jest udoskonaloną wersją pamięci komputerowej. Nowy typ pamięci sprawi, że komputery będą startowały szybciej, a farmy serwerowe będą bardziej energooszczędne. W standardowym komputerze posiadamy dwa typy pamięci - jedną wolną,...
Witam. Mam problem, już cieszyłem się skończonym programem zaliczeniowym, ale wynikł pewien problem z którym nie mogę sobie poradzić. Nie wiem co jest źle w mojej funkcji obliczającej macierz odwrotną. Może pomożecie go rozwiązać. Prosze o szybkie odpowiedzi. Dokładnie chodzi o ostatnią funkcję o nazwie MatrixInversion. Poniżej wstawiam kod. [syntax=cpp]#include...
Witam Musze napisać w c++ taki program i średnio wiem jak się za to zabrać. 1. Napisz program wyświetlający na konsoli (dziesiętnie oraz szesnastkowo) wartości kolejnych bajtów kodujących w pamięci zawartości zmiennych kilku wybranych typów np. char, int, float, double Jak należałoby rozbudować ten program aby zawartości kolejnych bajtów były wyświetlane...
Witam drogich forumowiczów, jeszcze nie znam się na programowaniu uC dlatego proszę o pomoc. Czy mógłbym prosić o scalenie poniższych programów i ewentualne wytłumaczenie. Chodzi o dodanie efektu Rainbow RGB, tak aby wyświetlał się w pierwszej kolejności. Matryca LED RGB 32x16 RainbowRGB [syntax=basic4gl]// Rainbow color changing RGB leds example //...
Witam. Tytułem wstępu. Problem z gatunku "ciekawostki". Na dzisiejszym zaliczeniu C z funkcji własnych zadanie było następujące: pobrać wartość|x|<1 i z dokładnością 1e-10 obliczyć wartość arcsin(x) za pomocą szeregu nieskończonego (w osobnej funkcji, podane 5 pierwszych wyrazów). Wyświetlić: x, wynik funkcji własnej oraz dla sprawdzenia arcsin używając...
float double float double stm32 pamięć float
livebox router bezprzewodowo elektryczna tylna klapa czujnik biegu wstecznego
satel powiadamianie radiowe komunikacja radiowa satel
Ciśnienie w naczyniu przeponowym Buderus Logomax Pasek napędu stacji dyskietek Yamaha PSR-600 - gdzie kupić?