Witam,
Mam problem z ADC na Attiny13A i już nie mam pomysłów co może być nie tak.
Prawidłowo działa tylko jeden kanał - na PB3.
Na PB4 ADC wskazuje cały czas 1023, chociaż mierzę miernikiem napięcie na tym pinie i zależnie od położenia potencjometru napięcie zmienia się w granicach 0 - ~1.1V. Więc jest ok, nie ma żadnego zwarcia. Także płytka jest dobrze zrobiona, napięcia się prawidłowo regulują potencjometrem na obu kanałach, dzielniki napięcia są dobrze obliczone, zresztą korzystałem z MkAVRCalculator.
Oto schemat:

Niestety nie mam możliwości zobaczenia wartości ADC na terminalu lub lcd, gdyż to mały kontrolerek. Jednak mając diody LED można sobie poradzić.
Korzystam ze sprawdzonego programu Pana Mirka do ADC:
main.c:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
main.h:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
adc.c:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
adc.h:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Na
PB3, jeśli przekręcę potencjometrem na wartość >= 1.08V, diody zaczynają migać, jeśli zmniejszę napięcie to oczywiście przestają. Czyli jest OK.
Z kolei, jak już wspominałem na
PB4 zawsze diody migają, czyli zawsze wynosi 1023. Nawet po zwarciu PB4 do masy nadal migają(Na PB3 po zwarciu do masy przestają migać). Ustawiałem wszystkie konfiguracje pinu
PB4, na wejście, wejście z pull up, wyjście ze stanem niskim, zawsze diody migają.
Płytkę mam niestety zrobioną pod PB4 oraz PB3. Próbowałem jednak również na PB2 - jeśli nie podam żadnego napięcia to diody są zgaszone - więc OK. Jednak jeśli zewrę PB2 do jakiegokolwiek napięcia, to też nic się nie dzieje... diody zgaszone czyli sytuacja odwrotna do PB3.
Kanał oczywiście dobieram jako argument do funkcji
pomiar().
Attiny13 taktowane jest wewnętrznym oscylatorem 4.8 MHz.
Nie pierwszy raz mierzę napięcie na ADC, ale pierwszy raz na Attiny13. Nigdy nie było takich problemów, kontroler jest nowo kupiony. Czy robię coś nie tak?
Proszę o pomoc,
pozdrawiam.