Witam.
Mam kłopot staram się wyświetlić na lcd lub wysłać przez USART zmienną która powinna przyjąć wartość około 70000 - 100000 ...
Mam wielkiego zonka
Teoretycznie definiuję zmienną jako
volatile uint32_t licznik = 70000;
a na lcd dostaję jakieś dziwne odczyty ... to samo na rs...
używam takiej funckji :
sprintf_P((char*)tekst, PSTR("Licznik: ""%09u "),licznik);
send_rs_wyraz(tekst); //wysyła na USART
write_text(tekst); //wyświetla na LCD
proszę o pomoc bo nie wiem o co chodzi ...
Liczy poprawnie do 65535 ... czyli obsługuje zmienną 16bit a ja muszę mieć 32bit .
Dodałem wpis do linkera : -Wl,-u,vfprintf
Lecz to też nie pomogło ...
Mała wskazówka ...
użycie funkcji :
send_rs_wyraz(ltoa(licznik,tekst,10));
Daje prawidłową wartość ... czyli błąd (moja niewiedza) dotyczy funkcji sprintf ... lub czegoś z nią powiązanego .
Mam kłopot staram się wyświetlić na lcd lub wysłać przez USART zmienną która powinna przyjąć wartość około 70000 - 100000 ...
Mam wielkiego zonka
Teoretycznie definiuję zmienną jako
volatile uint32_t licznik = 70000;
a na lcd dostaję jakieś dziwne odczyty ... to samo na rs...
używam takiej funckji :
sprintf_P((char*)tekst, PSTR("Licznik: ""%09u "),licznik);
send_rs_wyraz(tekst); //wysyła na USART
write_text(tekst); //wyświetla na LCD
proszę o pomoc bo nie wiem o co chodzi ...
Liczy poprawnie do 65535 ... czyli obsługuje zmienną 16bit a ja muszę mieć 32bit .
Dodałem wpis do linkera : -Wl,-u,vfprintf
Lecz to też nie pomogło ...
Mała wskazówka ...
użycie funkcji :
send_rs_wyraz(ltoa(licznik,tekst,10));
Daje prawidłową wartość ... czyli błąd (moja niewiedza) dotyczy funkcji sprintf ... lub czegoś z nią powiązanego .