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...
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, 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...
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: ***...
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...
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...
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...
Niestety o ile dobrze kojaże, w C mamy do dyspozycji tylko dwa typy zmiennych dla liczb zmiennoprzecinkowych - wspomniany float oraz double (8 bajtów, 15 miejsc po przecinku), w razie w long double, ale to nie to czego szukasz. Tak więc prostszego od float typu nie znajdziesz. Natomiast istnieje kilka innych rozwiązań dla liczb zmiennoprzecinkowych,...
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 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...
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?
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++)...
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...
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...
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,...
To jeszcze pomyśl, dlaczego piszesz: float v = val * 3.3 / 4095; zamiast uint32_t v = val * 3300 / 4095; (wartość w mV) double używa się z dwóch powodów: 1. jest to domyślny typ zmiennopozycyjny o rozsądnej precyzji (float ma tylko 24 bity precyzji) 2. na dużych komputerach nic to nie kosztuje, bo mamy dużo pamięci i jednostkę zmiennopozycyjną 64-bitową....
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...
No bez przesady. Programuje się go akurat trudniej, przecież masz różne tryby 16 i 32 bitowe, złożone adresacje itd. A co mnie to obchodzi pisząc w C albo C++? Nic. Programuje się to prościej, m.in. dlatego że jak chce mieć stałą we flashu, to piszę "const" i już, a nie niekończące się zabawy z PROGMEM i wszystkie związane z tym problemy (różny sposób...
witam robisz tak: #include <math.h> i w programie obliczasz normalnie np float a; a = sin(90); proste nie?? a teraz lepszy myk jak zapisac duza liczbe probek do pamieci typu float?? procek niestety ma za malo sramu a na 1000 lub wiecej probek...np dla 1024 probek typu float (zajmuje 4 bajty ---double jeszcze wiecej bo 8 :P) potrzeba 1024 *4 =...
Każdy typ zajmuje jakieś miejsce w pamięci dlatego typy liczbowe (w tym przypadku double i long double . "Rozmiar typów zmiennoprzecinkowych zależy od konkretnych implementacji. Standardowo, typ float zajmuje co najmniej 4 bajty, double 8 bajtów, a long double zazwyczaj 8-12 bajtów. W przypadku kompilatora GCC w wersji 3.3.5, długości typów wynoszą...
Dopiero zacząłem programować, proszę o pomoc. Gdy konwertuję klasę na static to program się kompiluje, ale źle działa. Pokazuje jakby adres pamięci a nie wartość zmiennej. [syntax=java]public class zad2{ public abstract class NumberExample extends java.lang.Object { public NumberExample(){} public abstract byte getByteValue() ; public abstract double...
ale już 810/(450*1) to dla programu 1,799999... a nie 1.8, gdzie popełniłem błąd? Kwestia sposobu przechowywania liczb w pamięci komputera. I dodatkowe pytanie, jak zaokrąglić liczby do dwóch miejsc po przecinku? Na szybko naskrobany kod. #include <math.h> double round(double r, unsigned places) { double off = pow(10, places);...
Z tego co doczytałem int ma dwa bajty, long int, float, double cztery i jest to najwięcej co oferuje kompilator dla AVR (long long tez tylko 4 bajty). Właściwie dzisaj skończyłem program, przynajmniej część podstawową, wszystko działa. Została kosmetyka, upiększanie, wyszukiwanie co da się uprościć albo 'ufunkcyjnić':) Zostało mi 50% pamięci do wykorzystania.
EDIT: zapomnialem dodac, ze liczb double w 99,666% przypadkow mozna uniknac. pozostale 0.334% przypadkow mozna obsluzyc floatem albo wziasc wiekszy procesor <: no ok po tym wszystkim zgadzam się, że nie ma sensu taka zabawa na prockach ATtiny ... Trza brać takie gdzie pamięci jest sporo więcej - co najmniej ATmega8 ... a chodziło mi o wyświetlanie...
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...
Na LCD możesz tak wyświetlić, nie musisz używać float/double tak samo do obliczeń, zamień na jedną liczbę całkowitą. Itoa w implementacji to lekkie funkcje, dalej tylko przesłać. [syntax=c] short pomiar = 0xFE6F; int temperature = (pomiar >> 4) * 10000; if ( pomiar & 0x08 ) temperature += 5000; if ( pomiar & 0x04 ) temperature += 2500; if ( pomiar &...
1. W zadaniu nie ma postaci binarnej. Pomocna struktura: [syntax=c]union AllInOne { char vc; int vi; float vf; double vd; char bytes[sizeof(double)]; };[/syntax] wczytujesz do vd, zaś odczytujesz z bytes[]; 2. Zadanie wykonano niepoprawnie, nie napisano że tych napisów ma być nie więcej niż 40. Jak używasz sobie string to użyj i vector: http://ideone.com/WHq34R...
Witam, nie koniecznie problem ale chciałem przedstawić sposób na to aby przedstawić dowolną zmienną z pomocą zmiennej tekstowej string (ciąg HEX) i odwrotnie. Podana przeze mnie metoda robi dużo więcej niż tylko zmienia int na hex czy hex na integer obsługuje oprócz tego String,Int, Long, byte, word, fload, double, oraz tablice i struktury i dowolna...
Są konkretne powody; pierwszy z nich to czas alokacji, drugi to problemy z fragmentacją pamięci, trzeci to garbage collection. Standardowy malloc w przerwaniu to pomyłka jesli chodzi o czas wykonywania... Przesada - malloc trwa (sprawdzałem) koło 150 cykli - nie wiem gdzie tutaj tragedia... Dłużej może trwać free, zwłaszcza jeśli będzie łączył bloki....
(at)Piotrus_999 W wygodny sposób można sterować czterema - podłączasz 4 kanały DMA, które transmitują wcześniej przygotowane dane. Ponieważ to rozwiązanie używa 2 timerów na kanał, więc cztery niezależne taśmy są też granicą z tego powodu. Łącznie daje to przy odświeżaniu 50 Hz możliwość sterowania 2666 diod. Ponieważ dla nich będziesz potrzebował...
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};...
Ciekawe komentarze, jednakże zwrócę tu uwagę na kilka rzeczy: Przesyłając duże ilości danych przez jakieś wolne medium - zdecydowanie tak. Dokładnie o to mi chodziło, w sumie mogłem to dodać na początku, oczywiście samo określenie stream/strumień/serializacja sugeruje, że pewnie jakiś plik lub socket sieciowy to odbiera lub wysyła. Oczywiście nie korzystałbym...
Podałeś przykład z mnożeniem niedostosowanych do FFP liczb, to ja podam kontrprzykład: for(float i=0;i<10;i+=0.00000001); Zadziała z float? Oczywiście nie. O czym to świadczy? Wyłącznie o tym, że programując trzeba myśleć. Rozwiązanie problemu który przedstawiłeś zajmuje jakieś 3 sekundy - wystarczy zastosować typ double (lub po prostu zmienić wartości,...
Nie skupiałem się na obliczeniach. Statystykę jakoś zaliczyłem, ale nie uważam jej za dziedzinę matematyki... Matematykę lubię, nawet różniczki 2 rzędu i szeregi, ale jak widzę prawdopodobieństwo to jestem chory... nie rozumiem tego zupełnie. Wykonałem makro do pobierania wartości na zasadzie wprowadzenia ich "gdzieś" i rozpoczęcia obliczeń. Chciałem...
https://obrazki.elektroda.pl/2123084800_... Przedstawię tu cztery praktyczne sytuacje w których ChatGPT rzeczywiście pomogło mi w programowaniu. Sytuacje będą obejmować różne języki i tematyki, będzie C i wyświetlacz 7-segmentowy, będzie Javascript, trochę HTML, a również Winsock i wysyłanie żądania HTTP. Nie zapomnę też o prostej...
Cała nasza matematyka jest wykonywana na 32-bitowych systemach zmiennoprzecinkowych, a 32-bitowy zmiennoprzecinkowy służy do przechowywania zużycia energii. Dlaczego nagle chcesz używać 64-bitowego typu double do wytwarzania energii? Jakiej mocy spodziewasz się wygenerować, jeśli Twoim zdaniem przekroczy ona typ 32-bitowy? Przyjmowałem różne założenia,...
https://obrazki.elektroda.pl/9080758700_... XVI32 to darmowy program pozwalający na wygodne otwieranie, edycję oraz inspekcję dowolnego pliku w trybie szesnastkowym, działający (zdaniem autora) na platformach Windows 9x/NT/2000/XP/Vista/7, chociaż u mnie i na Windows 10 zadziałał. Tutaj w skrócie pokażę jego możliwości, gdyż jest to...
Zapewne coś namieszałem bo nadal mam błędny odczyt [syntax=cpp] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h" #include "i2c_twi.h" //********** funkcje przetwornika ADC char buffer_n[8]; volatile uint16_t pomiar[6] __attribute__((section(".noinit"))); void inline SetAdcKanal(unsigned...
To by wyglądało tak: mamy blok pamięci przeznaczony go na flagi dla np. 4 miliardów liczb (0.5GiB), przesiewamy te liczby przez sito Erastotenesa, i pakujemy do listy różnic; następnie przetwarzamy w ten sam sposób kolejne 4 miliardy... W trakcie liczenia sumy liczb robisz podwójne sumowanie: jedno, żeby wyliczać kolejne liczby pierwsze, drugie, żeby...
Przyznam szczerze że mam problem z ogarnięciem tych rozmiarów danych zwracanych itd.. i nie bardzo wiem jak zmienić to wszystko tak, jak powinno być. Generalnie znowu mam problem. Na wyświetlaczu chce wyświetlić temperaturę z termometru DS18B20 - magistrala 1-wire zasilany zewnętrznie. Po dodaniu kodu odpowiadającego za obsługę tego termometru wyświetlacz...
http://obrazki.elektroda.pl/5826537700_1... Poniższy opis prezentuje jak, krok po kroku, skonstruować prosty termometr oparty na mikrokontrolerze. Układ ten mierzy i wyświetla temperaturę powietrza. Nie jest to może najdokładniejszy termometr świata, ale jest dobrym projektem który zrealizować można w domu ucząc się jednocześnie np....
Jak ustawić wartość kanału z linii URL przeglądarki przy użyciu wartości dziesiętnej? Aby ustawić wartość kanału z linii URL przeglądarki przy użyciu wartości dziesiętnej, należy skonstruować adres URL, który zawiera żądaną wartość kanału jako parametr zapytania. Wprowadzając ten adres URL do przeglądarki, można wysłać żądanie do urządzenia lub serwera,...
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...
http://obrazki.elektroda.pl/3438606900_1... Kurs: C mamy typy: -podstawowe: typy znakowe, całkowite i rzeczywiste -pochodne: wskaźnikowe, tablice, struktury, unie. Typy i zmienne całkowite http://obrazki.elektroda.pl/5522476200_1... Rozmiary zmiennych danego typu http://obrazki.elektroda.pl/7250805900_1... Użycie...
dlaczego nie połączysz go z PC za pomocą USB Niestety, ale USB wykorzystuję w innym celu. Co do kodera - znalazłem coś takiego w internecie: [syntax=c]//1999 Cristi Cuturicu #include "Definicje_sprzet.h" //#pragma hdrstop #include <stdio.h> #include <stdlib.h> #include <string.h> #include "GPIO_procedury.h" #include "Katalogi_SD.h"...
Witam. Miał być w założeniu dwukanałowy czyli sterować wybrane w programie obwody np;z pierwszego kanału obwody 3 i 4 a z drugiego obwody 1 i 2 ale nie potrafiłem sobie z tym poradzić więc "przypisałem" każdemu obwodowi własny czas załączenia i wyłączenia z podziałem na dni robocze [od Poniedzialku do Piatku ] i dni wolne [sobota niedziela]. Chciałem...
https://obrazki.elektroda.pl/3805560900_... Połączenie starych i nowych technologii w jednym urządzeniu zawsze jest ciekawym pomysłem. Autor tego termometru postanowił wykorzystać lampy nixie do wyświetlania temperatury, mierzonej z pomocą cyfrowego sensora. Nad całym układem czuwa moduł Arduino, co znacznie uprościło konstrukcję,...
https://obrazki.elektroda.pl/5502422400_... Witajcie moi drodzy Chciałbym zaprezentować tutaj drugą wersję mojego Arduino VGA Shield (nakładki na Arduino UNO generującej jednokolorowy obraz VGA i czarno-biały PAL/NTSC ) - tym razem wykonaną za pomocą elementów SMD , i z dodatkowymi układami na pokładzie ( expander portów MCP23016 oraz...
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ą,...
float double float double stm32 pamięć float
czujnik spala peugeot zaprogramowa programator pralki citroen odpowietrzać pompa
5tech podłączenie kamer miernik grubości lakieru
Bashan 200 chłodzony cieczą – test dekompresatora, objawy i regulacja Bashan 200 ciecz – lokalizacja dekompresatora na wałku rozrządu, budowa i diagnostyka