Witam.
Korzystając z wyświetlacza oled ssd1306 z bibliotekami Pana Mirka które są opisane w poradniku VIDEO oraz procesora atmega328p napotkałem się na następujący problem. Próbując wyświetlacz liczbę 32768, na wyświetlaczu pojawia się liczba -32768 czyli z zakresu int16_t.
Programie głównym mam zadeklarowaną zmienną:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
następnie w funkcji głównej przypisuje na sztywno do tej zmiennej liczbę 32768
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W bibliotece funkcja za wyświetlanie liczby int32_t odpowiada funkcja:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w pliku .hex
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
A w pętli głównej liczba tą wyświetlam następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Sprawdzałem czy funkcja itoa konwertuje na inny typy. kiedy zmieniłem w funkcji mk_ssd1306_put_long argument int32_t data na int8_t, to w tym przypadku na wyświetlaczu pojawiła się liczba z zakresu od -128 do 127.
Bardzo prosiłbym o jakieś sugestie jak mogę rozwiązać ten problem.