arko_go napisał(a):
return ADCW;
Zwracasz dwa bajty z pomiary (ADCH i ADCL scalone w jeden bajt) czyli 16bitów, ale sześciu pierwszych jako tako nie ma czyli de fakto 10 bitów.
arko_go napisał(a):
lcd_int(pomiar (5));
Wyrzucasz na LCD liczbę int, czyli z zakresu −32768 do +32767. Dlatego zamiast np. liczby 40000 na wyświetlaczu otrzymasz wartość ujemną (licznik się przekręci). Jeśli chcesz rozdzielczość 8 bitową to musisz zrobić coś takiego
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Działa to tak, że zerujesz dwa bity najmłodsze (najmniej znaczące) i zamiast 10 bitów masz już 8, ale należy całość jeszcze przesunąć o dwa miejsca w prawo, aby wynik zmieścił się w jednym bajcie