Forum » Programiranje » printf NULL karakterja
printf NULL karakterja
purki ::
Živjo!
Problem me spravlja že ob živce, zato sem se odločil povprašati še tule.
Namreč: Imam PIC32 mikrokrmilnik, ki preko serijskega porta krmili neko napravo. Ukazi za krmiljenje so shranjeni v EEPROMu (Pelco protokol). Ukazi vsebujejo skoraj kompleten nabor ASCII znakov. Problem je z izpisovanjem, saj naprimer asci NULL (prvi v tabeli) pomeni zaključevanje stavka in do njenega izpisa preko printf funkcije sploh ne pride.
Torej: Kako naj izpišem prvi ASCII znak NULL oz. '\0' preko printf??? Ali to gre.
Problem me spravlja že ob živce, zato sem se odločil povprašati še tule.
Namreč: Imam PIC32 mikrokrmilnik, ki preko serijskega porta krmili neko napravo. Ukazi za krmiljenje so shranjeni v EEPROMu (Pelco protokol). Ukazi vsebujejo skoraj kompleten nabor ASCII znakov. Problem je z izpisovanjem, saj naprimer asci NULL (prvi v tabeli) pomeni zaključevanje stavka in do njenega izpisa preko printf funkcije sploh ne pride.
Torej: Kako naj izpišem prvi ASCII znak NULL oz. '\0' preko printf??? Ali to gre.
misek ::
pač ne uporabi funkcijo printf in napiši svojo, ki izpisuje znak po znak. In namesto prepovedanih znakov izpiše znak za piko. Tako kot prikazuje hexdump program:
000001b0 00 87 00 af 03 01 22 00 02 11 01 03 11 01 ff c4 |......".........| 000001c0 00 1d 00 00 00 07 01 01 01 00 00 00 00 00 00 00 |................| 000001d0 00 00 00 00 03 04 05 06 07 08 09 02 01 ff c4 00 |................| 000001e0 3f 10 00 02 01 03 02 04 03 06 04 05 02 04 07 01 |?...............| 000001f0 00 00 01 02 03 04 05 11 00 06 07 12 21 31 13 41 |............!1.A|
teey ::
purki, printf() uporabljaš da pošlješ ukaze preko serijske povezave, če te prav razumem?
No, v tem primerju enostavno uporabi funkcijo write(), podaš ji začetek ukaza in njegovo dolžino, in bo poslano brez kakšnih tumparij s strani NULL terminatorjev.
No, v tem primerju enostavno uporabi funkcijo write(), podaš ji začetek ukaza in njegovo dolžino, in bo poslano brez kakšnih tumparij s strani NULL terminatorjev.
Zgodovina sprememb…
- spremenil: teey ()
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | Napaka pri TCP Hanshake-uOddelek: Omrežja in internet | 2292 (1922) | AndrejO |
| » | SSD ni možno nastaviti kot Boot OptionOddelek: Strojna oprema | 4646 (3521) | BorutK-73 |
| » | HEX uganka - formula - nagrada :)Oddelek: Programiranje | 3627 (2110) | Silikon |
| » | Pridobitev podatkov in sortiranjeOddelek: Programiranje | 1018 (839) | Spura |
| » | navijanje dellaOddelek: Navijanje | 1302 (1194) | MecH |