sprintf

Witam. tworzę sobie łańcuch przy pomocy funkcji sprintf celem wysłania go przez interfejs szeregowy.

case 1: { sprintf(cOutBuff,"N4=%d;%d;%d",ulCount4,usBridgeSignalValue,usBridgePhaseValue); // sprintf(cOutBuff,"%s","N4=12345;9876;1234"); break;

zmienne są typu unsigned short. No i od czasu do czasu losowo coś się zacina np po 20 albo po 150 transmisjach. Jeśli zamiast tej linii dam tę zakomentowaną to wszystko chodzi dobrze czyli stale wysyła ten ciąg znaków. Jeśli zamienię %d na %s to program chodzi ale oczywiście wysyła robaczki zamiast ciągów cyfr. Czyli tak jakby wysypywała się konwersja z int na ascii wymuszona parametrem %d. Czy ktoś wie czemu? Pewnie mógłbym to zastąpić funkcją itoa ale żal mi rezygnować ze zwięzłego zapisu. Programik jest na ARMa pod Freertosem.

Reply to
Mario
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.