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.
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.
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...
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ę...
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];...
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ś...
Sprawdzałem u mnie na symulatorze i wszystko ok. Dodałeś stdlib? Jakieś warningi?
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ł.
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...
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]
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, 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...
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",...
Użyj " zamiast '. Ale to chyba nie rozwiąże problemu tak jakbyś chciał;) Funkcja sprintf załatwi sprawę.
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 {...
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 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);...
wydaje mi się że powinno być char buf[8] a nie float buf[8].
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...
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;...
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...
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); }
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]
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...
%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)...
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]
#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() {...
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...
Jak zmienić tekst char * nazwa na typ float?? Jest do tego jakaś funkcja w standardowym c++
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....
Witam! Czy o to chodzi? [syntax=c] float HexToFloat(unsigned char *bajty) { return ((float) *bajty); }[/syntax] A może bajty są zapisane w ASCII, bo wtedy trzeba podejść inaczej?
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...
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)...
...Kompilator to WinArm, gcc v. 4.1.1 A co koledze przeszkadza , w wykorzystaniu funkcji char *gcvtf(float VAL, int PRECISION, char *BUF); :?: Piotrek
That's why atof() nie działało: zabrakło: #include <stdlib.h>
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?
[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 <<...
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"...
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
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ś 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++){...
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);...
#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
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;...
no tak tylko że funkcja USART1_Receive() jest typu unsigned char, a USART1_Transmit() przyjmuje char(bez *). Wykombinowałem coś takiego: ftoa() to w ogóle kompilator mi jej nie wykrywa, o ile funkcję atof wykrył bez problemu. Piszę w Eclipse.
w 12 to nwm z nauczycielem rozmawialem i albo A albo C . w 10 na 200% A kolego. CHAR!! Float to do zmiennoprzecinkowych.
Możesz takim razie wyjaśnić, co u mnie powoduje to niewyrównanie? Wg mnie u Ciebie te dane są wyrównane, ale tylko przypadkiem - po wejściu do funkcji stos jest wyrównany do czterech lub ośmiu, więc tablica którą tworzysz jako jedyną na stosie mniejszą niż cztery bajty (bo po zachowaniu jakichś rejestrów dalej stos będzie wyrównany). Stąd właśnie moje...
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...
#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...
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....
Z jakiej korzystasz biblioteki. Czujnikiem dysponuje tym samym. [syntax=c] float press; char s[18]; temp = BMP180_gett(); press = BMP180_getp(); LCD_GoTo(10,3); dtostrf( press/100, 4, 2, s ); if (press>99999) { LCD_WriteText( "Ci:" ); } else { LCD_WriteText( "Ci: " );} LCD_WriteText(s); [/syntax] To u mnie działa 100% OK.
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...
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;...
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.
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...
Mam nastepujacy program (dolaczone wlasciwe biblioteki): float u1; char lcd_buf[16]; void main(void) { lcd_init(16); while (1) { lcd_clear(); u1=2.75; sprintf(lcd_buf,"%.2f",u1); lcd_puts(lcd_buf); delay_ms(250); }; } W wyniku na wyswietlaczu pojawia sie 2f zamiast 2.75 . Gdzie jest blad ? Pozdrawiam, BluDeVil
[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+...
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)?
Na floatach wykonuje obliczenia predkosci oraz przejechanej drogi, konwersji float na char z uzyciem sprintf potem konwersja cyfry na bitmape i na LCD. Tak wiec mapy do lcd to tylko kawalek z prezentacja wynikow. Uzywam sdcc gdy daje --model-small a wiec data i idata wywala mi sie ze za malo pamieci w segmencie DATA wiec segment CODE mysle ze jest OK.
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 !
odczyt Wystarczy EEPROM.get(10, Val_PWM_eeprom) I zapisuje nowe wartości po ustawieniu Wystarczy EEPROM.put(10, Val_PWM) jest do liczb duble i ciężkie dla AVR Nie ma typu double w AVR, tylko tak się nazywa i jest synoninem float.
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ć....
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.
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)
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);...
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];...
O to rozwiązanie, zaczerpnięte z anglojęzycznego forum: Fragment kodu - [syntax=c] float c = bmp.readTemperature(); char buffer[50]; dtostrf(c,3,2,buffer); P.displayText(buffer, PA_CENTER, 30, 2000, PA_SCAN_HORIZ, PA_MESH); while (!P.displayAnimate());[/syntax]
a ten kompilator zna słowo typedef? jak tak to deklarujesz sobie nowy typ w pliku .h typedef union MojaUnia { int costam; float inne; char c; } MojaUnia; a potem możesz uzywac tego typu jak kazdego innego czyli deklarujesz zmienną globalną w jednym z plikow .c MojaUnia unia; a w pliku .h extern MojaUnia unia;
wykorzystaj funkcje lacuchowa sprinf(..) to np : #include <stdio.h> .................... char s[80]; float k; sprintf (s, "%f", k); ....................
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)...
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ę...
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...
Sprawa trochę skomplikowana inaczej. jest kilka pozycji do wyświetlenia:[syntax=c]//oblicz OCRx dla zegara T2 // OCR2= ((F_CPU/czestotliwosc_krokow) / (2*1024))-1 licznik =(float) F_CPU/czestotliwosc_krokow; //#ifdef DEBUG wys_parametr32(licznik); //#endif ----------------------------------------... void wys_parametr32(float...
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
wszystko super pieknie dziala :) dzieki no ale jest kolejny problem jak dodaje liczby np.: 2,4 + 2,8 to wypisuje mi wynik 5,19999980926514 jak to zrobic aby to zaokraglilo ?? zmienne przecinkowe mam jako float bo double i char mi nie przyjmuje ;/
a mozna tez sprintfem wrzucic sfromatowany lancuch: float adc; unsigned char tmp[MAX]; adc = adc_result/1.0f; sprintf(tmp,"%f2.2 [V]",adc); oczywiscie trzeba pamietac o: -Wl,-u,vfprintf -lprintf_flt -lm
mam taki kod, i wszystko dziala ok, ale chcialbym zapisywac obiekty ktore przechodzuje w kontenerze "vector" i tutaj zaczyna sie problem Kod: [syntax=cpp] ofs.write((char*)(file), sizeof(File)); [/syntax] prubowalem zamiast "file" przekazac funkcji iterator vectora (*it) ale niestety nie tedy droga. Zdaje sobie sprawe ze rozwiazanie jest bardzo proste...
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....
Mam to już tak podpięte (Aref do AVcc) ale to dało tylko taki efekt jak pisałem powyżej że setne i tysięczne przestały przeskakiwać. Spróbuje zastosować ten TL431 może to da jakiś efekt...ale czy to może wyeliminować ten niestały błąd??? PS. Nie znam się zbyt dobrze na programowaniu ale z tego co się orientuję to i zmiennych float i int Tutaj są wszystkie...
(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...
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
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),...
Na szybko .. nie wiem czy to optymalny sposób ale działa :) [syntax=c]#include <stdio.h> int main(int argc, char **argv) { char buf[100]; float liczba= 12.2; sprintf(buf,"%g",liczba); char *pbuf = buf; while( (*pbuf != 0) && (*pbuf != '.') ) pbuf++; if( *pbuf == 0 ) return 0; pbuf++; int j=0; if( *pbuf != 0 ) while(*pbuf!=0) { buf[j++]...
To może zapytam inaczej: Kto mi pomoze i powie dlaczego ten program nie działa, chodzi o TIMER2 co z nim jest nie tak?? #define IE3 0x20 #define XtalFreq (11059490)/*main crystal frequency */ #define TM2_DIV (-XtalFreq/1200*5) /* 50 ms */ sbit M_WIND = P1^5; struct METEO { float pressure; float temperature; int licznik_wind; int...
Tak z itoa też próbowałem, ale itoa działa mi tylko dla typu int, dla typu long int, long long int, też nic nie wyświetla. Wyświetla natomiast dla typu unsigned int, ale zakres jest jak dla zwykłego int. :| Tutaj drugi przykład: [syntax=c]#define F_CPU 1000000l #include <avr/io.h> #include <util/delay.h> #include "HD44780.h" #include <stdio.h>...
#include <stdio.h> #include <math.h> #include <stdlib.h> int main (){ int x,y,s; float w; char znak; printf("Podaj liczbe x \n"); scanf("%i",&x); printf("Podaj liczbe y \n"); scanf("%i",&y); printf("Podaj znak \n"); scanf("%s", &znak); switch (znak){ case 'g': s=y+x; printf("Suma wprowadzonych liczb to %i \n", s); break;...
(...) t szerokosc wysokosc temp display.println(temp); display.println(" "); display.drawRect(123,30, 5, 5, WHITE); // to jest od celsjusza znaku display.setCursor(110,25); display.setFont(); display.display(); Blynk.virtualWrite(V2, temp); //sending to Blynk app delay(5000); } Dziękuję za ponowne dostarczenie pełnego kodu. Wydaje się on poprawny i...
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]...
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??
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...
A mógł by ktoś podać kod dla tych współrzędnych? bo wiem jak wczytywać pojedyńcze znaki do tablicy ale już np takie cos jak 0.5489 nie wiem jak wczytac a tu jeszcze innna tablica do tego. Nie wiem jak wczytywać to tak jak by mialo rece i nogi bo takie cos to umiem ale nie wiem jak zrobic zeby wczytac to do float i zey wszystko bylo ladnie oddzielone...
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
A dlaczego tego nie sformatujesz normalnie za pomocą np. sprintf? [syntax=c] volatile float a,x; int p; volatile char Text_Buffer[32]; x = 150; a = x/47; sprintf((char*)Text_Buffer, "%4.4f", a); p=0; while(Text_Buffer[p]!= 0) { USART_SendData(USART1, Text_Buffer[p]); p++; } [/syntax]
Z tego co z dawnych lat pamiętam trzeba fizycznie określić co jest GND, czyli podłączyć GND (taki odwrócony trójkącik) w każdym razie dawne wersje pspice bez tego wyrzucały "floating node"
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
W kodzie mam kilka pozycji liczb do wyświetlenia (float) sprintf()wyświetla mi "____?___" Na próbę wpisałem kod: [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include "config.h" #include "LCD.h" #include <util/delay.h> #include <stdio.h> #include <stdlib.h> ..... .... .... main() { #ifdef DEBUG float cyfra=34.34;...
Zad. 2 class jakasKlasa { private: float zmiennaFloat; public: int zmiennaInt; jakasKlasa(int x) { zmiennaInt=x; zmiennaFloat=11.77; } jakasKlasa(int x, float y) { zmiennaInt=x; zmiennaFloat=y; } void WpiszInt(int x) { zmiennaInt=x; } void WyswietlWszystko() { std::cout<<zmiennaInt<&...
chara float zamiana float chara chara array float
rozruch transformatora wodomierz magnes zakładania pierścieni
Woda ze zlewu wpada do zmywarki - przyczyny i rozwiązania Porównanie płytek antenowych SWA-9701 i SWA-955-5EX Turbo Quatro