logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8 ADC] dynamiczna zmiana kanału pomiarowego

2shy 08 Gru 2011 15:25 1644 5
REKLAMA
  • #1 10233638
    2shy
    Poziom 10  
    Cześć wszystkim,
    próbuję zrobić kilkukanałowy woltomierz na bazie uK Atmega8L-8PU z wyświetlaniem na LCD 2x16.
    Woltomierz działa, tylko w obu linijkach wyświetla się wynik z kanału 5. Przy zmianie napięcia obie linie wskazują tę samą wartość.
    Podczas debugowania udało mi się stwierdzić, że bity MUX odpowiedzialne za wybór kanału nie zmieniają się, chociaż nie wiem, dlaczego. Jeśli ktoś ma jakiś pomysł, z góry dzięki za podpowiedzi.

    Napisałem sobie taki oto kod:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10234141
    zumek
    Poziom 39  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Przypatrz się i pomyśl.
  • REKLAMA
  • REKLAMA
  • #4 10234329
    2shy
    Poziom 10  
    aadamw, to prawda, korzystam z książki pana Kardasia i nie pierwszy raz zauważam, że jest w niej trochę literówek.
    Zumek, dzięki serdeczne za podpowiedź, sprawdzę.
    Mógłby ktoś jeszcze mnie upewnić, czy pętla opóźniająca while, która czeka na wyzerowanie bitu ADSC, jest poprawnie skonstruowana?
  • REKLAMA
  • #5 10234566
    dondu
    Moderator na urlopie...
    2shy napisał:
    ... to prawda, korzystam z książki pana Kardasia i nie pierwszy raz zauważam, że jest w niej trochę literówek.

    Błędy się zdarzają wszystkim - to normalne :)
    Może masz wersję pierwszą - była do niej errata.

    2shy napisał:
    Mógłby ktoś jeszcze mnie upewnić, czy pętla opóźniająca while, która czeka na wyzerowanie bitu ADSC, jest poprawnie skonstruowana?

    Czy wiesz jak działa sprawdzanie flagi ADSC w tym mikrokontrolerze?
    Zastanów się, czy ta jedynka na końcu jest potrzebna.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #6 10238479
    2shy
    Poziom 10  
    Dondu, dzięki za podpowiedź, już widzę błąd. Jedynka nie wpływa na wynik wyrażenia, ale jest zbędna. Dopiero zaczynam programować, więc dziękuję za wyrozumiałość.
    Co do książki pana Mirka, jest bardzo dobra, szkoda tylko, że jest w niej sporo wspomnianych literówek. Faktem jest, że błędy nie zdarzają się tylko tym, którzy nic nie robią. Ściągnąłem już erratę.

    Dzięki wszystkim za pomoc, zamykam temat :)
REKLAMA