Witam,
Mam przedziwne wrażenie że instrukcja sprintf (jak i sscanf) potrafią porypać cały program, np go zawiesić albo sprawić że inne funkcje przestaną działać. Konwersja znaków jest jakimś strasznym obciążeniem dla kontrolera czy o co tu chodzi?
Zauważyłem że im pamięć danych jest mniej zapchana tym rzadziej dochodzi do błędów. Najwidoczniej sprintf potrzebuje troche wolnej pamięci.. ale co jak co:
sprintf(znak,"%d", n);
żeby takie coś zawieszało program!?
Jestem pewien że to te instrukcje, bo jak się je usunie to wszystko działa. Swego czasu pisałem własne konwersje ale np ta jest kłopotliwa. Zresztą po coś te print'y istnieją..
Pomóżcie bo chyba sie załamie. Pisze gpsa i jestem już na etapie obsługi użytkowników, a przez to dziadostwo prosta funkcja sprawdzająca kto dzwoni za pierwszym podejściem przepuszcza a za kolejnym nie. O tym że od czasu do czasu cały procek się zawiesi nie wspomne..
Pracuje na "pojemnym" uC i mam sporo zapasu pamięci. Wykorzystuje 25% pamięci kodu i ok 70% danych.
Help
Mam przedziwne wrażenie że instrukcja sprintf (jak i sscanf) potrafią porypać cały program, np go zawiesić albo sprawić że inne funkcje przestaną działać. Konwersja znaków jest jakimś strasznym obciążeniem dla kontrolera czy o co tu chodzi?
Zauważyłem że im pamięć danych jest mniej zapchana tym rzadziej dochodzi do błędów. Najwidoczniej sprintf potrzebuje troche wolnej pamięci.. ale co jak co:
sprintf(znak,"%d", n);
żeby takie coś zawieszało program!?
Jestem pewien że to te instrukcje, bo jak się je usunie to wszystko działa. Swego czasu pisałem własne konwersje ale np ta jest kłopotliwa. Zresztą po coś te print'y istnieją..
Pomóżcie bo chyba sie załamie. Pisze gpsa i jestem już na etapie obsługi użytkowników, a przez to dziadostwo prosta funkcja sprawdzająca kto dzwoni za pierwszym podejściem przepuszcza a za kolejnym nie. O tym że od czasu do czasu cały procek się zawiesi nie wspomne..
Pracuje na "pojemnym" uC i mam sporo zapasu pamięci. Wykorzystuje 25% pamięci kodu i ok 70% danych.
Help