====== 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) 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() ===== {{anchor:dtostrf}} [[hu:arduino:variables#float|float]] / [[hu:arduino:variables#double|double]] konvertálása [[hu:arduino:variables#char_array|karakter-lánc]]cá, 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 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() ===== {{anchor:dtostre}} [[hu:arduino:variables#float|float]] / [[hu:arduino:variables#double|double]] konvertálása [[hu:arduino:variables#char_array|karakter-lánc]]cá, 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() ===== {{anchor:atoi}} [[hu:arduino:variables#char_array|Karakter-lánc]] konvertálása [[hu:arduino:variables#int|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 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() ===== {{anchor:itoa}} [[hu:arduino:variables#int|int]] konvertálása [[hu:arduino:variables#char_array|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() ===== {{anchor:atof}} [[hu:arduino:variables#char_array|Karakter-lánc]] konvertálása [[hu:arduino:variables#float|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|atoi]] ===== atol() ===== {{anchor:atol}} [[hu:arduino:variables#char_array|Karakter-lánc]] konvertálása [[hu:arduino:variables#long|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|atoi]]