Sprawdzałem u mnie na symulatorze i wszystko ok. Dodałeś stdlib? Jakieś warningi?
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...
Najprościej: 1. mnożysz float *10, powstaje np zmienna "liczba"; 2. następnie "liczba" dzielisz przez 10 - masz zmienną "całe"; 3. na "liczba" wykonujesz dzielenie modulo 10 i masz ulamek. W przypadku całkowitych można też od razu rzutować na int, tak jak pisał kolega wyżej. Poskładać to do kupy z kropka pomiędzy za pomocą itoa() i już.
Jeśli chcesz, żeby zaokrąglał zamiast obcinać to do zmiennej float dodawaj 0,5 i następnie rzutuj.
witam! Po drobnych poprawkach: #include<iostream.h> #include<string.h> float sr(char a[],int k) { // char a[1000]; float f=0,g=0; int c,d=0; for(c=0;c<k;c++) { if(a[c]>100) { d++; f=f+a[c]; } } g=f/d; return g; } main() { char a[1000];...
Witam, mam zadanie, w którym stosując variant,unie mam przerobić mój program reprezentujący stos z typami int na stos który będzie dodawać kolejno różne typy zmiennych np int, char, float itp. Niestety nie wiem jak to zrobić o samym variancie prawie nic nie znalazłem na internecie, nie licząc kilku stron w języku angielskim z których niewiele zrozumiałem....
Konwersję z liczby całkowitej na string łatwo można Sobie zaimplementować, implementacje funkcji itoa() też są dostępna, wystarczy poszukać w sieci: [url=http://en.wikipedia.org/wiki/Itoa]i... Część po przecinku też można wydobyć za pomocą itoa() wystarczy pomnożyć wynik przez wielokrotność 10 i zapisać go do integer. Warto ogólnie operować na liczbach...
Usunięcie tablicy nie przyniosło oszołamiających efektów, choć poprawiło sytuację. Dane są wysyłane poprawnie do mniej więcej 32 czy 64-tej próbki, a ja chciałbym wysłać ich 255. Kolejne próbki po bodajże 64-tej znów są przekłamane. Nie wiem w czym piszesz, ale dziwnie działasz na wskaźnikach/adresach. Poza tym rzutując na unsigned char ograniczyłeś...
int -> char[] - itoa() float -> char[] - tutaj funkcji jest wiele, zależnie od potrzeb - najlepiej poprzeglądać dokumentację do libc (zwykle newlib) - dołączoną do kompilatora. Implementację funkcji itoa() można znaleźć na mojej stronie www.freddiechopin.info -> Download -> ARM -> Różne Na podstawie funkcji itoa() można zresztą wymyślić własną funkcję...
tylko i wyłącznie dzielenie i odejmowanie. Czyli [0]=liczba/100 (stałoprzecinkowe - pascal - div) [1]=liczba/10-[0]*100 itd. oczywiście do wykonania w pętli.
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);...
%d służy do wyświetlania zmiennych typu całkowitego (integer). Masz kawałek działającego kodu: int main(int argc, char *argv[]){ float a1; FILE *fp; fp=fopen("Uklad_Rownan.txt"... printf("Wprowadz a1: "); scanf("%f",&a1); fprintf(fp,"%5.2f",a1)...
wydaje mi się że powinno być char buf[8] a nie float buf[8].
nie wiem czy coś ze mną nie tak czy z tym forum, ale piszę tą odpowiedź drugi raz, albo odpowiedziałem w innym temacie ... użyj tej funkcji, u mnie działa to jest dla DS18 S 20 (niepotrzebnie wkleiłem , ale niech już zostanie) float zamien_temp(unsigned char MSB,unsigned char LSB) { float ftmp; if(MSB==0x00)//dodatnia,lub 0 {...
That's why atof() nie działało: zabrakło: #include <stdlib.h>
if ((x >= '65') && (x <= '90')) { Dwie sprawy: 1. Nie jesteś w Pascalu więc nawiasy przy warunkach są zbędne. 2. Zapis w pojedynczym apostrofie dotyczy pojedynczego znaku więc piszemy np. 'a', 'b', ..., 'z' itp. dwa znaki występują tylko przy znakach specjalnych np. '\n' - znak końca linii. scanf ("%c", &x); Od kiedy w ten sposób...
bit WpiszLiczbeFloat(unsigned char dx,unsigned char dy,float *ptr,unsigned char typ) {float dana_calkowita;float dana_ulamkowa; union { float f; unsigned long l; }dana; unsigned char znak; //tablica w której będą umieszczone poszczególne cyfry ASCII unsigned char tab[13]={0x30,0x30,0x30,0x3...
Ciężko tu zaobserwować zmiane tych wartości ponieważ jest to program na do mikrokontrolera ATMEGA, wrzucam cały kod, może będziecie wiedzieć co tu jest źle. #define F_CPU 14.7456E6 //delay.h //na podstawie podanej czesotliwosci kwarcu obliczane beda opoznienia wystepujace w programie #include "pliki\io.h" #include "pliki\delay.h"...
[syntax=c]#include <iostream> #include <cmath> using namespace std; int main(int argc, char** argv) { float a, b, c; cout << "podaj a" << endl; cin >> a; cout << "podaj b" << endl; cin >> b; cout << "podaj c" << endl; cin >> c; float delta = b*b - 4 * a * c; if (delta > 0) { cout <<...
No tak by było chyba najlepiej... razem z printfem: printf ("%g",convert_temp(tds... Zdaje się, że trochę przekombinowałem... :p Pytanko: A czy to nie powinno wyglądać tak: float convert_temp(unsigned int temp) { unsigned char sign = 0; float ret = 0; if(temp & 0x8000) { sign = 1; temp = ~temp + 1;...
Brrr, Basic. ;) Przerzuć się na C lub asemblera. Nowe AVRStudio można zintegrować z WinGCC i działa to bez zarzutów. A w C deklarujesz sobie od razu, czy masz zmienną całkowitą (char, int), czy zmiennoprzecinkową (float) i o dziwo artytmetyka zmiennoprzecinkowa nie zajmuje ogromnych ilości flasha. :) Ciekawie prawisz , tylko wytłumacz mi dlaczego ten...
Witam, przepraszam za późną odpowiedź. . Proszę o pomoc w następującej sprawie. 1- Muszę dopracować autoexec.bat, aby urządzenie budziło się tylko co 30 minut, pobierało odczyty i wysyłało je przez MQTT Jest to bardzo proste, wystarczy zmienić czas DeepSleep w autoexec.bat 2- Chciałbym mieć określony ładunek danych publikowany za pośrednictwem MQTT...
Tak, prawidłowo. Odpowiedź dla biblioteki której używasz napisał (at)khoam w #9. Na zmienną t potrzebujesz zająć bajty od canMsg.data[0] do canMsg.data[3]. Może tak będzie prościej: [syntax=c] float t = 12.3; char *pt = &t; ... canMsg.data[0] = pt[0]; ... canMsg.data[3] = pt[3]; [/syntax]
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...
poradzilem sobie, niezla kombinacja, ale dziala. Zapisuje zmienna float do pliku, pozniej odczytuje po bajcie. A nie próbowałeś z unią? union { float czas = 1.44f; unsigned char wartosc[4]; } moja_unia; Powinno się też dać tak: float czas = 1.44f; for (i = 0; i < 4; i++) printf("To jest bajt %d: %u\n",...
w 12 to nwm z nauczycielem rozmawialem i albo A albo C . w 10 na 200% A kolego. CHAR!! Float to do zmiennoprzecinkowych.
Coś takiego chiałes? : #include <stdio.h> #include <stdlib.h> #define W 3 #define K 3 int main(int argc, char *argv[]) { float tab[W][K]; int i,j; for(i=0;i<W;i++){ for(j=0;j<K;j++) scanf("%f", &tab[i][j]);... for(i=0;i<W;i++){...
W tym chciałbym ją tylko deklarować ale coś mi nie wychodzi. Deklaracja powinna wyglądać następująco: [syntax=c] struct Player { string name; char formation; int numer; float skillsGK; float skillsD; float skillsM; float skillsA; float setPieces; bool health; }; struct Team { string name; Player zawodnik[11]; } druzyna[10]; [/syntax]
Ja w takich przypadkach stosuję metodę którą na swoje potrzeby nazwałem "split objects". Obiekt u mnie składa się po prostu z dwóch części - stałej i zmiennej. Zwykle "główny" obiekt jest stały, a ten "zmienny" fragment jest podrzędny, jednak są sytuacje w których robię to odwrotnie, głównie wynikające z polimorfizmu lub dlatego że łatwiej/lepiej jest...
char st1 to nie zadziala. tablice nalezy inicjowac rozmiarem znanym podczas kompilacji. masz wiec dwa wyjscia: 1. albo rozmiar na sztywno 2. albo szybki kurs uzycia funkcji malloc i obslugi dynamicznego przydzialu pamieci (obstawiam, ze jak procek nie ma pozadnej ilosci RAMu, to nawet nie ma co probowac) x = 53.7; <-------------------- tu muszę...
Chyba za bardzo nie rozumiesz co się tu pisze. Spróbuj: char bufor[10]; void inline na_tekst(float liczba){ dtostrf(liczba,4,1,bufor); } main(){ na_tekst(temp); LCD_WriteText(bufor); }
Jak zmienić tekst char * nazwa na typ float?? Jest do tego jakaś funkcja w standardowym c++
Szukam po necie ale nie mogę znaleźć poleceń dzięki którym da rade tak zrobić. Przy deklarowaniu struktury mam dwie zmienne char, trzy float i jedna int. Wczytuje wszystko w pętli ale jak teraz je przerzucić do pliku. jeżeli chce użyć fputc to wyskakują błędy. Zastanawiam się jak można zapisać i później odczytać z pliku dane żeby były tego samego typu...
Moja funkcja lcd_str to to samo co u Ciebie LCD_WriteText. Wstawiłem ją tylko po to by można było się zorientować co ona robi a nie byś ją stosował.
...Kompilator to WinArm, gcc v. 4.1.1 A co koledze przeszkadza , w wykorzystaniu funkcji char *gcvtf(float VAL, int PRECISION, char *BUF); :?: Piotrek
Użyj " zamiast '. Ale to chyba nie rozwiąże problemu tak jakbyś chciał;) Funkcja sprintf załatwi sprawę.
Witam, Poszukuję metody napisanej w C++ która zamienia liczbę Hexadecimal na float (hex to float). Do tej pory znalazłem kod: unsigned char adres[4]; //bo float ma 4 bajty unsigned char *wtab = adres; float liczba = 15.6; *(reinterpret_cast<float*>(... = liczba; //do z rzutowanego wskaźnika char na float przypisujemy...
jeśli chodzi o ujemne temperatury to ta funkcja sobie poradzi: float zamien_temp(unsigned char MSB,unsigned char LSB) { if(MSB&0x80)//ujemna temp { LSB=~LSB +1; MSB=~MSB; unsigned int suma = LSB + (((unsigned int)MSB)<<8); return ((float)suma) * -0.0625; } else//dodatnia...
float wart; scanf(f,"%f\n",&wart); JEst najwygodniej. Ew prawie jak zapisałeś: std::ifstream someVarName("data.txt")... float fl; char temp[100]; someVarName.getline(temp, 100); fl=strtof(temp); Co do przecinka - ustaw zmienną extern char DecimalSeparator PS. Jaki to kompilator, bo w...
witam, mam problem z konwersją float'a na tablice charów. char tablica[4]; sprintf(tablica, "%G", temp_in); USART_Transmit(tablica[0]... USART_Transmit(tablica[1]... USART_Transmit(tablica[2]... USART_Transmit(tablica[3]... w terminalu pokazuje się tylko znak zapytania...
Witam. Moim zadaniem jest skonwertowanie float do tablicy char. Po dość długim przeglądaniu sieci, zaczynam wątpić, czy jestem w stanie to zrobić samemu. Ściągam syscalls.c ze strony Freddie'ego, dodaje do projektu... i niestety następne problemy się pojawiają. Czy jest ktoś zrobić prosty opis, co zrobić żeby dało się wywołać funkcję sprintf ? undefined...
A co to za cudaczne obliczenia :wink: ... unsigned char wynik1=0; unsigned char wynik2=0; wynik1=read1w(); wynik2=read1w(); reset1w(); float temp=0; if((wynik2)!=0){ //temp ujemna wynik1=~wynik1; temp=wynik1+1; //dlaczego /2 i gdzie się podział wynik2 ? temp=-temp/2; //??? } else{ //temp dodatnia...
Co jest nie tak? [syntax=sql] CREATE TABLE (id int NOT NULL AUTO_INCREMENT, nazwa char(50), cena_z float, cena_s float, inne char(99), PRIMARY KEY(id)); [/syntax]
Przykładowa funkcja wysyłająca "rozbitego" floata: void rs_write_float(float val) { unsigned char * ptr; ptr=(unsigned char *)&val; RS_WriteByte(*ptr); ptr++; RS_WriteByte(*ptr); ptr++; RS_WriteByte(*ptr); ptr++; RS_WriteByte(*ptr); } i skladanie floata do kupy : float rs_read_float(void)...
Let me google it for you :) Wystarczy w google wpisać: "float to string C" aby otrzymać: double num = 123412341234.123456789; char output Arduino standardowo dołącza biblioteki wyswietlajace float, bo AVR Studio nie?
#include <iostream.h> #include <conio.h> #include <math.h> const int GORA=72, DOL=80, LEWO=75, PRAWO=77; void wczytajDane (float &wielk, char &znak); void rysujFigure(float wielk, float X, float Y, char znak); void ruszaj(float wielk, float &X, float &Y, char znak); void main() {...
#include <stdio.h> . . . unsigned char bufor [10]; unsigned char dana sprintf (bufor, "%d", dana); WriteLCD(bufor); Poczytaj o formatowaniu stringow funkcja sprintf (printf) a wszystkiego sie dowiesz: jak wyswietlac w postaci hex, jak wyswietlac float, stringi etc. pozdrawiam BF
wykorzystaj funkcje lacuchowa sprinf(..) to np : #include <stdio.h> .................... char s[80]; float k; sprintf (s, "%f", k); ....................
Witam, Dziwne ale po sprawdzeniu działa tak samo i dla "^" i dla "|". Natomiast konwersja na float, w taki sposób jak podałeś niestety nie działa. Dla przykładu zrobilłem wartość, float a = 19.785461 co daje unsigned char test[4]={160, 72, 158, 65} - tak mi przychodzi z urządzeania. Rzutowanie takie jak w mojej funkcji daje 19.785461. Pozd
WItam Nie do konca zrozumialem z tym 1/100. Ale sama funkcja bedzie wygladac jakos tak: #include <math.h> unsigned char Y; float Z; unsigned int X; X = 3 * Y * pow(10,(7-Z)); // pow oblicza potege
Witam W tablicy RESZTA mam reszte liczby wyciagnieta ze stringu. Np "1234". Ta wartosc chce przeliczyc na inny format. W tym celu musze to podzielic przez 10000 i pomnozyc przez 60. Nastepnie otrzymana wartosc calkowita wyswietlam na LCD. Realizuje to tak: //funkcja przeliczajaca float dm_to_dms(char var[]) { float sec; sec= 60*(atof(var)/10000); return...
ze jak? bo co kolesiowi rekurencja w liscie? - przeciez wystarczy przeleciec przez all elementy tylko raz podczas obliczania czegos tam no chyba ze mowimy o drzewach binarnych, ale do drzew lista sie nie nadaje najlepiej podaj dokladna tresc zadania bo inaczej to mozemy sobie rozmawiac bardzo dlugo ;) - jezeli chcesz zrobic permutacje to od tego jest...
Mógłbyś mi wkleić kawałek kodu jak to wysłać po RS232 ? Arduino np Pozdrawiam Coś w stylu:[syntax=c]void setup(void) { Serial.begin(9600,SERIAL_8N1); } uint32_t otime=0; float value=0; void loop(void) { char buf[24]; uint32_t nt = millis(); if (nt-otime < 500) return; otime = nt; if (Serial.available()) { sprintf(buf, "%20.6f", value += 0.01); Serial.println(buf);...
Bardzo łopatologiczny programik w c++ :D #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { start: system("cls"); float kwota, kopia; char sprawdz; int dwi=0, sto=0, pie=0, dwa=0, dzi=0; cout << "Wprowadz kwote: "; cin >> kwota;...
(at)Rachel dane wejściowe oczywiście mogą przyjmować wartości ujemne. Uczenie sieci trwa kilka epok, np. uczenie perceptronu dla tych danych trwa ~50 epok: [syntax=text]// x, y, goodOutput float test[7][3] = { {2, 1, 1}, {2, 2, 1}, {0, 6, 1}, {-2, 10, -1}, {-2, 0, -1}, {0, 0, -1}, {4, -20, -1} };[/syntax] Algorytm uczenia jest bardzo prosty: [syntax=c]if...
Nie wiem czemu u Ciebie nie działa, ja skompilowałem przykładowy programik i wszystko działa (na kompie), daj może większy bufor, wyskakują jakieś błędy przy kompilacji? #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv PS. Twoja funkcja "wyswietl" jest nieekonomiczna, powinienbeś operować na wskaźnikach.
Jestes pewien, ze *TEN* kod dzialal? Pomijajac samo wyswietlanie to zmienne pomiar masz zadeklarowane jako char, prowadzisz na nich obliczenia typu float (niektore stale np. 9/5 wcale automatycznie nie ulegaja konwersji do float) i na koncu do zmiennej char uzywasz funkcji dtostrf, ktora jako pierwszy argument wymaga double (float na AVR)?
no tak tylko że funkcja USART1_Receive() jest typu unsigned char, a USART1_Transmit() przyjmuje char(bez *). Bez znaczenia, te funkcje nie wykonują obliczeń na tych danych, tylko je transmitują. Wykombinowałem coś takiego: Tak szczerze, to zupełnie nie łapie co chciałeś zrobić - konwersja/rzutowanie z char do float da ci kod ASCII znaku jako liczbę...
Udało mi się odgrzebać jakiś programik, ale napisany jest w C. Oczywiście skompiluje się także w kompilatorze C++. #include <stdio.h> //#include <stdlib.h> float pole_prostokata(float a, float b) { return a*b; } float pole_kola(float r) { return 3.14*r*r; } float pole_trojkata(float a, float h)...
No z tego co mnie się wydawało miało w tym celu pomóc mi sprintf które zrobi mi konwersje float na char (nie wiem czy dobrze to robię) a potem wartość tej zmiennej wyświetlę na lcd komendami praktycznie na samym dole kodu
załatwia sprawę ? W przywołanym przeze mnie przykładzie kodu, tak. Dodano po 8 Tak przy okazji co robi ta funkcja publishFloat("Ppv", glueFloat(node.getResponseBuffer(1), node.getResponseBuffer(2))); Nie dałeś mi żadnej szansy, będę zgadywał :) [syntax=c] void publishFloat(char * topic, float f){ String value_str = String(f, 1); char value_char[32]...
Program w wielkim skrócie ma zwracać z liczby zmienno przecinkowej to co po przecinku np. 12.345 -> 345 rozwiązałem to tak jak poniżej ale nie działa przypuszczam czemu ale nie wiem jak to ugryźć [syntax=cpp]#include <iostream> #include <cmath> using namespace std; void bkropki(float& bk) { cout<<bk<<"="<<floor(b...
Dzięki ;D miałem stdio.h A w jaki sposób wyświetlać liczby zmiennoprzecinkowe? bo pisząc: [syntax=c] char bufor[7]; float val=122.6; lcd_str( itoa(val, bufor, 10) ); [/syntax] Dostaję na wyświetlacz 122
Wypisuje Ci 0 gdyż funkcja utoa potrafi konwertować tylko liczby całkowite. Wykorzystaj funkcje dtostrf(double liczba,char dlugosc,char precyzja, char* bufor); float V; float V_wypisz; interwal=50; V= (float) S / (float) interwal; V_wypisz=V*3600; char km5[10]; dtostrf(V_wypisz, 4,2,km5)
Można zmienić i rozbudować: napisane pod Dev-C++ #include <iostream> #include <conio.h> #include <math.h> using namespace std; char c; float dd; int main() { cout<<"wybierz 1 lub 2 lub a "<<endl; c=getch(); switch (c) { case '1': cout<<"nacis. 1";break; case '2': cout<<"nacis. 2";break; case 'a': float arg=3.3;...
Juz bol znaleziony. Wlasnie wczoraj po kilku godzinach meki znalazlem problem. Mimo ze w przykladzie CV jest uzyta funkcja sprintf do konwersji float na lancuch char to sama funkcja nie obsluguje float (moze mam jakas stara wersje stdio. Musialem zrobic najpierw konwersje float na int i pozniej skorzystanie z funkcji sprinf do zamiany int na lancuch.
Witam Piszę projekt na zaliczenie semestru w języku C. Chciałem napisać funkcję (dodawanie nowych elementów do listy jednokierunkowej z czterema elementami) z datą: mianowicie rok i miesiąc. W instrukcji od visuala jest napisane że są to funkcje year oraz month, a ja użyłem tego z argumentem now. Program niestety mówi mi że takie funkcje są niezdefiniowane....
[syntax=c] #include<stdio.h> #include<conio.h> #include<ctype.h> #include<stdlib.h> #include<cmath> float e; float liczba=1.0,i=2.0; char pusty; int main() { //1 + 1/2 + 1/3 +...+ 1/n > e printf("Podaj liczbe/cyfre e:"); scanf("%f", &e); scanf("%c", &pusty); printf("\n"); while(liczba<e) { liczba= liczba+...
Mam mały głupi problem a mianowicie: mam program w c++ #include<iostream.h> #include<string.h> class student { private: int rok; float srednia; char *imie; char *nazwisko; public: student(char *i, char *n, float sr, int r){ imie = new char[strlen(i)+1]; strcpy(imie,i); nazwisko = new char[strlen(n)+1];...
Co to ma być, to powyżej? Dlaczego bufor zadeklarowny jest jako float No to co tam znalazłeś to pozostałości po moich bezskutecznych próbach rozwiązania tego problemu. Oczywiście były to skrajne nieporozumienia :) Ale faktycznie zastosowanie ltoa zamiast itoa rozwiązało problem. Dzięki wielkie i pozdrawiam !
A jako przykład wystarczy podać zwykłe wywołanie scanf(); int main(int argc, char*argv[]){ int a; float b; unsigned int c; char tab[10]; scanf("%d%f%u%s",&a,&b,&c,... return 0; } Przy okazji warto pamiętać, że nazwy tablic w języku C można utożsamiać ze wskaźnikami na nie
Mam taki problem, po dodaniu tej funkcji hex z 9kb zwiększa się do 19kb !! Funkcja spełnia swoje zadanie ale te 10kb boli... Atmega32 AVR-GCC Jakieś pomysły? void menu_stan_baterii() //ta funkcja po skompilowaniu zwiększa hexa o 10KB !!!! { float voltage = 0; char volt[3] = " "; voltage=(float)ADCH/51; dtostrf(voltage,3,3,volt);...
Cześć Mam taki problem, mianowicie dokonuje zamiany wartości z przetwornika na float. Uruchomiłem debugger i podejrzałem zmienne. capVoltage = 0x14 (hex) Po zamianie na float wg poniższego równania: capVF = (capVoltage * VREF * 10 * 4.82) / 256 capVF = 0, a powinno być 18,82. capVoltage jest typu unsigned char capVF jest typu float O co chodzi??
Jeżeli "endianess" (czyli kolejność układania bajtów w pamięci dla dłuższych liczb) jest taki sam w obu urządzeniach, to wystarczy zrzutować. Zakładając, że masz te dane w buforze począwszy od pozycji i: [syntax=cpp] char buffer[100]; float yaw, pitch, roll; if (odebrano_polozenie) { float* values = (float*)(&buffer[i]); yaw = values[0]; pitch = values[1];...
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...
Tylko jesli chce miec rzeczywisty wynik to musze zrobic dzielenie przez 1000 zeby miec czesc dziesietna i ulamek po przecinku? Dodano po 1 Dane z czujnika temperatury odbieram po i2c i dokonuję obliczeń według wzoru z dokumentacji. Jak mam dokonać obliczeń z wzoru bez stosowania zmiennej typu float? [syntax=c] unsigned char upperbyteU8; unsigned char...
#include <cstdlib> #include <iostream> #include "math.h" using namespace std; int main(int argc, char *argv[]){ float a, b, c, d; char tn='t'; float p; cout << "\n\tPROGRAM sprawdza czy z podanych\n\t przez uzytkownika odcinkow da sie utworzyc trojkat\n"; cout << "\n\tTrojkat o bokach,...
Witam, Potrzebuje pomocy. Dlaczego działa mi tylko char numer[4]; natomiast jak zmienię na float jak poniżej wywala mi kompilator - no match for 'operator>>' in 'std::cin >> budynek1[i].magazyn::numer' Muszę puźniej obliczyć ilość produktu razy cenę i wartość wszystkich produktów, więc muszę zmienić na inny typ niż char bo będę miał błędy....
Potrzebuję wyświetlić po przeliczeniu na wyświetlaczu LCD (klasyczny 20x2) liczbę np. 20 000 000 000 - bez spacji. Chory temat, ale muszę się dostosować do wymagań promotora... Próbowałem sprintf() ale wiadomo co robi z pamięcią procka. Docelowo użyłem dtostrf(), ale dziwnie działa tzn. właściwą wartość 8 002 930 403, pokazuje jako 8 002 930 200. Jakoś...
Troche za prosty ten Twoj kod :) Na koncu powinienes - dla scislosci - dac petle nieskonczona while(1); bo inaczej wszystko bedzie krecilo sie w kolko. Jesli chcesz gotowca to masz dzis szczesliwy dzien:) Kod ponizej dziala na 100% - ustal tylko swoje piny. #include <REG51F.h> #include <stdio.h> //RW na stale do masy //cztery starsze bity...
Idz na latwizne - wklej ten kod:) #include <REG51F.h> #include <stdio.h> //RW na stale do masy //cztery starsze bity P1 steruja czterema starszymi LCD sbit RS = P1^1; sbit EN = P1^0; void delay (int czas) { int k=0; while (k!=czas) { k++; } } void waitms (int ile)// Czekanie ok 1msdla zegara 11059200Hz...
Podłącze się pod temat :D Uprzedzam że zaczynam z WinCC więc pytanie może być banalne: Chciałbym Tag(Word) reprezentujący rejestr MW20 prezentować na panelu jako zmiennoprzecinkową wartość tylko do odczytu. Udało mi się zrobić coś takiego ale nie wiem czy to jest poprawne: #include "apdefap.h" double _main(char* lpszPictureName, char* lpszObjectName,...
Próbowałem obliczać to wcześniej i to samo. Tablica width jest unsigned char . Rzutowanie do float musi być bo wtedy dobrze mi zaokrągli do góry.
Moglibyście podesłać jakieś programy? W teorii wszystko fajnie pięknie ale z praktyczną realizacją mam problem. Znalazłem taki w którym slave wysyła do mastera zmienne typu float ale ne potrafię go przerobić pod swoje potrzeby ale wiem że się da Slave: [syntax=c] #include<Wire.h> float x_lat = 32.12345; float y_lng = -106.123456; char wy[7]; char...
char wartosc sprintf odpada dla tak skromnego bufora, tymbardziej ze float/double jest w formacie. Niech ipaliwo wyjdzie z ułamkiem, to buffer overflow będzie murowany. Polecam albo skuteczne zwiększenie rozmiaru zmiennej "wartosc" (tak z dobrym zapasem - 64, 128 bajtów), albo bezpieczną wersję sprintf: funkcję _snprintf _snprintf(wartosc, sizeof(wartosc),...
Witam. Mam problem, otóż muszę napisać skrypt w języku C, w którym przy podaniu dwóch wartości ma mi obliczyć wg. wzoru wynik. Napisałem, niby wszystko działa, lecz złe wyniki podaje. Oto kod: [syntax=C]#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { float L1, L2; float R; printf("\nPodaj...
Witam, problemik mam następujący: program mierzy sobie napięcie i prąd w przerywaniu timera0, a w przerywaniu timera1 ma go wyświetlać... dodam timer0 chodzi jakieś 8 razy szybciej niż timer1 //deklaracja zmiennej unsigned char *bufor; float napiecie; //wykorzystanie tej zmiennej w przerywaniu SIGNAL (SIG_OVERFLOW1) { write_text("napiecie=")...
Niektóre biblioteki deklarowały strukturę, wewnątrz której była unia z wariantami danych i jedno pole wskazujące, która z nich jest aktywna. Można było w prosty sposób stworzyć tablicę, przechowującą obiekty z różnymi typami jednocześnie. [syntax=c]enum data_type { int_type, float_type, char_type}; struct data_s { enum data_type type; union { int i;...
Problem tu był wielokrotnie dyskutowany. Masz do wyboru - albo wysyłać wszystko w formacie tekstowym., po konwersji na stringi - IMHO preferowana metoda, albo przesyłać binarnie. Ta druga metoda wykorzystuje np. unie - możesz zrobić unie float i char. Zakłada jednak, że reprezentacja float na AVR jest taka sama jak na PC - niekoniecznie tak musi być....
#include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> void main(void) { float a; char *str; a = 23.4; clrscr(); str = ftoa(a); printf("%s",str); getch(); } Kompilator nie rozpoznaje " ftoa " Może...
Cześć, akurat pisanie skrótem "Cze" i brak polskich liter nie oznacza braku szacunku absolutnie, najwyżej lenistwo. Przejdzmy do rzeczy. ****************************************... Funkcja obslugi przerwania od portu szeregowego: void FIQ_Handler (void)__fiq { int przerwanie=0; przerwanie=U1IIR; if (przerwanie & 2 ) { if (*dane != 0) dane++;...
wiem że jakieś nadpróbkowanie tu jest ale jak to możliwe? Przecież dodaje 128 próbek i dzielę przez 128 Liczy średnią, najprawdopodobniej nadpróbkowuje. Z programu nie da się wywnioskować danych wejściowych, można tylko domniemywać. Przez 128? A dlaczego nie przez 4? Otóż jeśli używasz float, to masz możliwość zapisu tych dodatkowych bitów i to jak...
#include <cstdlib> #include <iostream> #include <math.h> using namespace std; int main(int argc, char *argv[]) { float w = 10; //(prędkość kątowa [1/s], 10stopni/sek) float t = 0; //(licznik czasu [s]) float a=10;//promień 1 float b=5;//promień 2 float alfa=0;//aktualny kąt float...
oto zmienne char msb,lsb,th,tl,a,temp; float celcius;
Mozesz isc na latwizne i uzyc kodu ponizej. Na 100% dziala on na kwarcu 11059200 ale ten Twoj tez chyba styknie. W listingu masz petle opozniajaca 1 ms wyznaczona doswiadczalnie oscyloskopem, nie jest ona napewno dokladna co do mikrosekundy ale taka dokladnosc nie jest w tym zastosowaniu potrzebna. Wystarczy, ze Twoj hardware bedzie zgodny z ustawieniami...
Nie wiem w jakim srodowisku piszesz ale np. w Keilu dla 51 tez taki zapis nie przynioslby skutku, gdyz funkcja sprintf jest typu non-reentrant . Musisz zmienic zapis na: unsigned char Line[17]; float result; result=234.0/212.0 sprintf(Line, "%f", result); LCD_Write(Line); Powinno zadzialac. Pozdrawiam BF
oto fragment kodu celcius = msb << 8 | lsb ; // do 4miejsca po przecinku celcius/=16; unsigned char tab[6]; LCD_xy(0,0); LCD_xy(0,0); write_text("Temperatura"... LCD_xy(1,0); write_text(dtostrf(celcius, 3, 4, tab)); powinno Ci to pomóc :) Dodano po 2 aha jeszcze to char msb,lsb;...
Witam, Chcę wyświetlić liczbę float np. "23,08" kombinuję z itoa ale mam problemy. Kombinuję tak: [syntax=c]float liczba; char text[7]; liczba=23.08; itoa( (int)liczba, text ); text[2] = ','; itoa( (int)(100*liczba)%100, text+4 );[/syntax]Ale na wyświetlaczu pokazuje się: 23,x8 gdzie x jest przypadkową wartością. Program sprawdzam na 32bitowym STM32....
Zamiast const typ* ważniejsze jest używanie const restrict typ* gdy się przekazuje więcej niż 1 pointer do funkcji. Już wolę, żeby nie dotykali `restrict`, bo gdyby to zrobili, to z pewnością w taki sposób, że ich kodu już nigdy nie dałoby się użyć w C++ (w którym nie ma takiego słowa kluczowego). Przy ich poziomie wiedzy naprawdę nic by z tego nie...
Ponownie witam wszystkich :) Tym razem przytrafił mi się problem natury programistycznej. By nie "zmuszać" chętnych do pomocy, najpierw zdanie o problemie, później naświetlenie sytuacji :) Problem: Funkcja nie wpisuje wartości do zmiennej pod wskaźnikiem przekazanym w parametrze :( A teraz naświetlenie sytuacji: Posiadam funkcję generującą wartość float....
float chara zamiana float chara chara array float
regulator obrotów wentylatora dospel laser vam1201 naprawa sensor airbag
papieros elektroniczny naprawa lampy nixie
Podłączenie kondensatora w silniku kosiarki EM 1700 – przewody czerwony, żółty, zielony Zmywarka Gorenje czy Whirlpool – porównanie modeli, energooszczędność, TotalDry, 6th Sense