Witam otóż mam taki problem mam funkcję która ma mi przeliczyć stopnie celciusza na wartość ADC, stopnie te przekazuję do funkcji jako argument jest to liczba całkowita którą zwiększam albo zmniejszam w pętli głównej za pomocą dwóch przycisków. Przeliczenie stopni na ADC odbywa się za pomocą wzoru który zaraz podam w kodzie. Na LCD wyświetlam sobie i temperaturę w stopniach, temperature tę ustawiam za pomocą przycisków, na LCD wyświetlam także temperaturę w ADC ale jest taki problem że, jak za pomocą klawiszy ustawiam temperaturę 0 to przeliczenie na ADC jest także 0 czyli dobrze, jak ustawię 1 to przeliczenie na ADC wyświetla mi się 9 czyli też dobrze, jak podam za pomocą przycisków temperaturę 0 albo 1 albo 2 albo 3 to prawidłowo mi to przelicza na wartość ADC ale jak już podam temperaturę większą od 3 czyli 4 albo inną większą od 3 to nieprawidłowo mi przelicza dla wartości 4 przelicza mi na -24 a powinno być 38. Czyli wieksze liczby od 3 źle przelicza i są to nieraz wartości dodatnie a nieraz ujemne.
Dlaczego tak jest co się dzieję?
tutaj jest funkcja do przeliczania, temp_zad to jest zmienna którą zwiększam albo zmniejszam za pomocą przycisków w pętli głównej, i na LCD wyświetlam temp_zad oraz już przeliczone temp_zad_in_ADC
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.