Chcę wykorzystać w programie informację o przyczynie resetu procesora. Odczyt rejestru MCUSR realizuję zgodnie z dokumentacją, wiadomo:
Chciałbym jednak wykorzystać te dane w kilku miejscach programu (telnet, lcd itp) unikając zmiennej globalnej - taki sobie umyślałem cel.
Próbuję to zrealizować wywołując funkcję zwracającą łańcuch znaków z konkretną już informacją o przyczynie resetu:
Funkcję wykorzystuję np tak:
Mój problem polega na tym, że zmienna char MCUSR_string[22]; jest o wiele za krótka, mimo, że najdłuższy string ma teoretycznie 22 znaki łącznie z nullem. Wyświetlany napis jest ucięty. Jeśli wydłużę łańcuch do np 40 znaków, to napis pojawia się w całości.
Czy możliwe, że wywołanie tej funkcji np w dwóch miejscach powoduje dopisywanie danych do tego samego łańcucha? Chyba nie powinno - przecież strcpy() zaczyna kopiowanie od początku...
Kod: C / C++
Chciałbym jednak wykorzystać te dane w kilku miejscach programu (telnet, lcd itp) unikając zmiennej globalnej - taki sobie umyślałem cel.
Próbuję to zrealizować wywołując funkcję zwracającą łańcuch znaków z konkretną już informacją o przyczynie resetu:
Kod: C / C++
Funkcję wykorzystuję np tak:
Kod: C / C++
Kod: C / C++
Mój problem polega na tym, że zmienna char MCUSR_string[22]; jest o wiele za krótka, mimo, że najdłuższy string ma teoretycznie 22 znaki łącznie z nullem. Wyświetlany napis jest ucięty. Jeśli wydłużę łańcuch do np 40 znaków, to napis pojawia się w całości.
Czy możliwe, że wywołanie tej funkcji np w dwóch miejscach powoduje dopisywanie danych do tego samego łańcucha? Chyba nie powinno - przecież strcpy() zaczyna kopiowanie od początku...