Arduino print használat

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Arduino print használat

Hozzászólás Szerző: SzLacus »

Adott egy PCF8574 portbővítőről beolvasott bájt. Serial.print utasítással kitírható, ezzel nincs probléma. Azonban van egy sajátossága a dolognak, ami nem mindíg hasznos. Elhagyja az "értéktelen" nullákat. Vagyis ha BIN, vagy HEX formátumban kérem a kiírást, akkor például a 0x0F az csak F, ami némileg zavaró, de értelmezhető. A BIN formánál viszont kimondottan zavaró. Például az LCD kijelző, (amit szintén portbővítővel hatok a fellelhető lib-en át) lcd.print(adat, BIN) utasítása ugyan így működik. Én most egy bemeneteket reprezentáló 8 darab 1- vagy 0-ból álló kiírást szeretnék megjeleníteni, amiből látszik, hogy melyik bemeneten mi történik. Itt nagyon hiányzik a függvény által feleslegesnek tartott és ezért meg nem jelenített 0, vagy nullák a felső helyiértékeken. Kérdésem az, hogy van-e a print-nek valami kapcsolója, amivel használhatóvá válik ebben a feladványban. Kis nyomozással kideríthető, hogy a C "printf" utasítása képes a fix hosszúságú kiírásra, és nekem most úgy gondolom erre van szükségem. Ha nincs, akkor sem dől össze a világ, mert akkor letapogatom a biteket egyenként, és küldök 1-et, vagy 0-át a kijelzőre, csak a print egy "szerszám", és minden szerszám annyit ér, amennyire használni tudjuk. Gyanús, hogy én nem tudom jól használni. Barátaim szerint az én kezemben előbb-utóbb minden szerszám kalapáccsá válik. :D
Avatar
irak
Biztosítékgyilkos
Hozzászólások: 73
Csatlakozott: 2005. november 2. szerda, 7:00

Re: Arduino print használat

Hozzászólás Szerző: irak »

Szevasz!

Formázd meg sprintf-el a kiírandó szöveget, bele egy string-be.
És azt küld ki.

Pl:

Kód: Egész kijelölése


#include <stdio.h>

char outstring[20];
char adatunk=0x0f; 

sprintf(outstring,"%02X",adatunk); //A "%02X" jelentése, nullával kitöltve 2 számjegyig, hexában, nagybetűvel
Serial.print(outstring);

http://mezeic.uw.hu/printf.html
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: Arduino print használat

Hozzászólás Szerző: SzLacus »

Köszönet a segítségért. Úgy látom, hogy az arduino mellett a C-be is bele kell tanulnom, (ami nincs ellenemre) mert fontos praktikumok kerültek feláldozásra az arduinoban az egyszerűség oltárán. Meg tudtam volna oldani arduino-ul leírva is, de abból indultam ki, hogy a feleslegesnek ítélt nullák elhagyását a függvény megalkotójának le kellett programoznia. Csak gondolt arra, hogy kellhet az a nulla néha az elejére. Binárisban még jobban hiányzik, mint hex-ben, de dec-ben is előfordult már, hogy a jobb áttekinthetőség kedvéért az oszlopok egymás alá igazítását a szám nagyságának figyelésével, és szóközök beszúrásávak oldottam meg. Most itt az univerzális megoldás, amit még egyszer köszönök irak-nak.
Válasz küldése