Bardzo kombinujesz, a wyżej masz dokładnie napisane dla dużych bibliotek, na dwa sposoby. Float ma cztery bajty, nie ma sensu w twoim przypadku zamienić go na int, żeby za chwilę zamienić tego inta z powrotem na float. Użyj memcpy (#9), albo ręcznie przepisz wszystkie bajty (#13).
Mała uwaga: memcpy jest rozwiązaniem mniej bezpiecznym niż unia.
Punkt dla ciebie, przyjmuję uzasadnienie. Zajrzyj jeszcze na SO to zobaczysz że tematów z pp jest 5 dziennie każde z pytaniem dlaczego mój program nie działa. Czy pp jest zawsze zły - oczywiście nie - ale trzeba mieć dobre uzasadnienie dla jego użycia (a to są przypadki nieczęste). Zresztą memcpy w niektórych szalonych standardach (co nie oznacza że...
unikanie typedef dla struktur oraz wskaźników (jeżeli komuś się wydaje że przez to kod jest czytelniejszy to zapewniam, że tak nie jest :P) Możesz rozjaśnić? Obecnie w taki sposób tworzę sruktury (używając typedef): użwyanie możliwie wielu funkcji ze standardowej biblioteki, bez wynajdywania memcpy czy memset na nowo (w SPL widzialem taki stuff ;))...
Czy móglby mi ktoś pomóc skompilować ten program #include <stdio.h> #include <stdlib.h> #include <math.h> #include <assert.h> #include <string.h> extern "C" { #include <jpeglib.h> #include <jerror.h> } #include <math.h> /*======================================... /* USER EDITABLE...
A zrób tak: [syntax=c] unsigned char buf[4]; float DNL; buf[0] =USART0_Receive(); buf[1] =USART0_Receive(); buf[2] =USART0_Receive(); buf[3] =USART0_Receive(); memcpy(&DNL,buf,4); [/syntax] Bedzie można sprawdzić, czy aby na pewno odbieramy to co odbieramy, bo często rejestry FIFO płatają figle. BTW: pokaż deklaracje funkcji "USART0_Receive". Nie jest...
To po kolei: EM_A_power to jak widać zmienna float (tu przywołana jako extern), która przyjmuje wynik funkcji IntToFloat. Funkcja umieszczona w szkicu działa od dłuższego czasu, nie działała w wydzielonym pliku; dzięki uwagom kolegi z innego forum okazało się przy okazji, iż w tej formie jest UB, ale o dziwo działała. Tak jak przypuszczałem - "głupi...
#include <stdio.h> #include <memory.h> int main(int argc,char**argv) { float f = 13.1456789; printf("%f\r\n",f); //13.1456789 char *s; s = (char*)&f; //rzutowanie na wskaźnik do tablicy charów float b = *(float*)s; printf("%f\r\n",b); //13.1456789 int i; memcpy(&i,&f,sizeof(int&...
W sofcie musiał byś dopisać tablice. Skompiluj i sprawdź jak to działa. [syntax=c] float GetTemp(u16 Adc,float ku) { const static float dw[] PROGMEM = { // Tablica wielomianu dla termopary J /* 1.978425E+01, -2.001204E-01, 1.036969E-02, -2.549687E-04, 3.585153E-06, -5.344285E-08, 5.099890E-10 */ // Tablica wielomianu dla termopary T /* 2.592800E+01,...
Jesteśmy świadkami, jak cała konstrukcja jest generowana przez AI. Nie tylko kod programistyczny, ale również sposób łączenia elementów. Na razie modele radzą sobie z popularnymi elementami, pewnie kwestia czasu, jak zostaną przetrenowane na datasheetsach elementów elektronicznych. . No właśnie AI kiepsko radzi sobie z Datasheet. Nie za bardzo radzą...
Dobra okazja by to spie.... Jeśli jest to typowa filozofia Arduino, z delayami, odpytywaniem portów w pętli (a nie przerwania), to zabija większą aktywność Jak napisałem - wykorzystuje stack TCP I proste parsowanie stringa. Nie ma w tym magii, proste C portowalne na wiele platform. przyklad kodu parsowania: void parseudp(AsyncUDPPacket packet)...
Witam. Chciałem zbudować proste radio FM na arduino z tego poradnika http://educ8s.tv/arduino-fm-radio-2/.Mam problem z kodem mianowicie podczas kręcenia enkoderem częstotliwość zmienia się z opuznieniem i nie płynnie. Próbowałem już wszystkiego ale niestety nieskutecznie. Enkoder oczywiście sprawny. Biblioteki powgrywane. Kod: [syntax=arduino]#include...
Witam Mam pewien problem po załadowaniu programu do procesora Atmega328 wszystko ładnie działa lecz wyświetla mi znaki na wyświetlaczu w poziomie a nie w pionie w jaki sposób można to zmienić poniżej podaje kod //Die MaxMatrix Bibliothek #include <MaxMatrix.h> #include <avr/pgmspace.h> //Ausgelagerte CHAR Arrays damit dieser Code übersichtlicher...
Temat ucichł i pozostały pytania bez odpowiedzi, to może przybliżę kolegom działanie espnow z wifi. I przytoczę działający przykład takiego połączenia. Nigdzie w oficjalnych źródłach nie doczytałem, że espnow nie działa z wifi. Spotkałem się tylko z opiniami, że transmisja espnow przestała działać po podłączeniu odbiornika slave do wifi. I to też jest...
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...
https://obrazki.elektroda.pl/7393623100_... Witajcie, dziś dla odmiany mała zabawa programistyczna. Przedstawię tu jeden prosty trik na oszczędzanie pamięci przy zapisie typu integer w języku C i nie będzie to po prostu rada w stylu "użyj typu 8-bitowego zamiast 32-bitowego". Pokazany tu typ sam dobierze sobie potrzebną ilość bajtów...
Witam, Zrobiłem urządzenie w którym dwa procesory stm32f103 komunikują się między sobą poprzez USART na zasadzie Master - Slave. Urządzenie sobie pracuje poprawnie i po pewnym czasie (losowo raz po czasie np 1min, drugi raz po np 10min) w procesorze master zmieniają się stany bitów PEIE i RXNIE w rejestrze CR1 od USART3, więc wysyła on zapytania, slave...
Witam Siedzę już drugą noc nad samymi timerami, a termin końcowy oddania projektu się zbliża. Problem wygląda tak, że gdy załączę zezwolenie na przerwanie od timera2 zawiesza się cały program (kratki na wyświetlaczu). Potrzebuje drugiego timera do obliczeń a Timer1 generuje przerwanie co 0,5s w trybie CTC. Kwarc 8MHz. [syntax=cpp] #include "board.h"...
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....
No to się zaczyna, wziąłem się za esp now i mam problem. kod nadawcy: 15:53:32.877 -> 15:53:57.881 -> Last Packet Send Status:Delivery Fail 15:54:02.847 -> Sent with success 15:54:02.895 -> 15:54:02.895 -> Last Packet Send Status:Delivery Fail 15:54:07.848 -> Sent with success...
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....
Witam Od dłuższego czasu walczę z obsługą wyświetlacza jak sądzę opartego na ssd1289 ( co prawda device code odczytywany z rejestru 0x0000 pokazuje 0x0020 ). Wyświetlacz inicjalizacje się poprawnie mogę wyrysować wszystko co chcę ale problem pojawia się w odświeżaniu obrazu. Sądząc po ustawieniu rejestru R25h jest ustawiony na 65Hz/ w nocie nie zauważyłem...
słuszna "opieprzka" , Freddie :))) a więc wygląda to tak : #include "stm32f10x.h" #include "TouchPanel.h" #include "systick.h" #include "LCD/LCD.h" #include "SD_Card/sdio_sd.h" #include "FATFS_V0.08A/src/ff.h" #include "usb_lib.h" #include "hw_config.h" #include "usb_pwr.h" #include "stm32f10x_usart.h" #include <stdio.h> #include "Rtc/RTC_Time.h"...
Witam! Próbuje rozpocząć pierwszą komunikację z wyświetlaczem LCD HY-320 opartego na sterowniku SSD1289. Na podstawie bibliotek ze strony http://obrazki.elektroda.pl/7640696200_1... Ekran toleruje napięcie 3.3V, więc zasilam i mikrokontroler, i ekran napięciem 3.3V. Atmega32A według noty katalogowej jest w stanie pracować na tym napięciu...
Nie miałem za bardzo czasu ale wracam do nierozwiązanego problemu. http://obrazki.elektroda.pl/7699775600_1... http://obrazki.elektroda.pl/3826926900_1... Tak wyglądają screeny po wywołaniu programu CRCGEN. Pliki wgrane programatorem działają poprawnie a przez bootloader tylko ten krótki (choć po przemieleniu ma także...
Ciągle: "Command not found" : https://obrazki.elektroda.pl/1797394600_... Co robię źlę ? Oprócz tego nadałem prawo wykonywalności plikowi "environment-setup-cortexa9hf-vfp-neon-p... Dodano po 4 Dopisałem do nazyw pilku rozszerzenie .sh i coś ruszyło. Patch node ze strony to standardowy Node.js czy to jakaś scpecjalan...
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...
Witam, Chciałbym narysować przebieg sygnału mierzonego przez przetwornik A/C mikrokontrolera. Niestety za nic w świecie nie potrafię tego zrobić. [syntax=c]#define F_CPU 16000000UL #include <avr/io.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <stdlib.h> #include <avr/interrupt.h> #include "pcd8544.h" //...
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ć...
volatile memcpy zaokrąglanie float wyświetlać float
ładowarka modelarski brother wymiana demontaż peugeot
Jak sprawdzić moc wzmacniacza klasy AB? Długość i wysokość anteny drutowej dla fal długich na 230 km