Oldalforrás megtekintése Korábbi változatok Hivatkozások Exportálás PDF-be Share on ... Google+ Twitter LinkedIn Facebook Pinterest Telegram Tartalomjegyzék avr_libc standard könyvtár dtostrf() Szintaktika Példa dtostre() Szintaktika atoi() Szintaktika Példa itoa() Szintaktika atof() Szintaktika atol() Szintaktika avr_libc standard könyvtár Az avr_libc egy, az Arduino telepítésével együtt installált könyvtár, ami egy egyszerű lib felhívással (#include<stdlib.h>) elérhető. A legtöbb funkciója az Arduino standard hívásokon keresztül is elérhető, de van néhány hasznos, ott meg nem található funkciója is. Leírása itt található: http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#g6c140bdd3b9bd740a1490137317caa44 dtostrf() float / double konvertálása karakter-lánccá, normál formátumban: "[-]d.ddd". Szintaktika dtostrf (value, width, prec, out) value (float, double): bemeneti érték width (signed char): egész helyiérték pozíciók száma prec (unsigned char): törtrész pozíciók száma out (char*): kimenet - A törtrészt, ha annak a megjelenítési helye kisebb, mint a számé, kerekíti. - Az egészrész kezdeti üres pozícióit szóközzel tölti fel. - Negatív with érték az eredményt balra igazítja, egyébként az igazítás jobbra történik Példa #include<stdlib.h> float i = 12345.6789; char buff1[10]; char buff2[10]; char buff3[10]; char buff4[4]; void setup() { Serial.begin(9600); } void loop() { // dtostrf(FLOAT,WIDTH,PRECSISION,BUFFER); dtostrf(i,5,2,buff1); Serial.print("buff1: "); Serial.println(buff1); dtostrf(i,4,0,buff2); Serial.print("buff2: "); Serial.println(buff2); dtostrf(i,2,4,buff3); Serial.print("buff3: "); Serial.println(buff3); dtostrf(i,6,2,buff4); Serial.print("buff4: "); Serial.println(buff4); delay(100000); } A monitor tartalma: buff1: 12345.68 buff2: 12346 buff3: 12345.6790 buff4: 12345.68 dtostre() float / double konvertálása karakter-lánccá, kitevős formátumban: "[-]d.ddde±dd". Szintaktika dtostre (value, out, prec, flag) value (float, double): bemeneti érték out (char*): kimenet prec (unsigned char): törtrész pozíciók száma flag (unsigned char): egész helyiérték pozíciók száma Ez a funkció nekem nem működött. atoi() Karakter-lánc konvertálása int-té. Szintaktika (int) = atoi (char*) char*: bemeneti karakterlánc A funkció visszatérési típusa: int. - A karakterlánc egész-részét konvertálja (a tizedespont előtt) - Nem ügyel a túlcsordulásra Példa #include<stdlib.h> char buff1[]="12345.67"; int i; void setup() { Serial.begin(9600); } void loop() { i = atoi(buff1); Serial.print(" :"); Serial.println(i); delay(100000); } A monitor tartalma: :12345 itoa() int konvertálása Karakter-lánc-cá. Szintaktika itoa(val, char*, radix) val (int/long): bemeneti int / long char*: kimeneti karakterlánc radix: szükséges buffer mérete, 2..36 atof() Karakter-lánc konvertálása float-tá. Szintaktika (float) = atof (char*) char*: bemeneti karakterlánc A funkció visszatérési típusa: float - A karakterlánc tartalmát konvertálja (a tizedesértékekkel együtt) - Nem ügyel a túlcsordulásra Példaként lásd: atoi atol() Karakter-lánc konvertálása long-gá. Szintaktika (long) = atol (char*) char*: bemeneti karakterlánc A funkció visszatérési típusa: long - Nem ügyel a túlcsordulásra Példaként lásd: atoi