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

[ATmega8535][C] Czy to dobra konfiguracja ADC? Nie działa Free Running.

Kaliber PC - Service 27 Cze 2017 16:00 759 4
REKLAMA
  • #1 16554283
    Kaliber PC - Service

    Poziom 22  
    Witam.

    Mam problem z konfiguracją przetwornika ADC na tryb Free Running, posyłam kawałek kodu:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Problem polega na tym, że w takiej konfiguracji ten procesor pokazuje mi stale jedną wartość i nie chce mierzyć kolejny raz (tak, jakby pracował w trybe Single Mode). Zdaję sobie sprawę, że to dość stara ATmega, ale wzięta bo tania... ;) A na pewno ktoś na tym już pracował, bardzo proszę o porady co w tych rejestrach wpisuję źle.

    Zakładam m.in., że biorąc pod uwagę rejestr SFIOR i fabrycznie wyzerowane bity ADTS2...0 mam dobrze napisaną konfigurację.
  • REKLAMA
  • #2 16554309
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #3 16554360
    dondu
    Moderator na urlopie...
    Piotrus_999 napisał:
    Konfiguryjesz jako wyjścia to czego oczekujesz?

    Gdzie kolega widzi, by wybrany kanał ADC7 był ustawiony na wyjście?

    @JasnyKris

    Cytat:
    • Bit 5 – ADATE: ADC Auto Trigger Enable
    When this bit is written to one, Auto Triggering of the ADC is enabled. The ADC will start a conversion on a positive edge of the selected trigger signal.
    The trigger source is selected by setting the ADC Trigger Select bits, ADTS in SFIOR.
  • REKLAMA
  • #4 16554367
    Konto nie istnieje
    Konto nie istnieje  
  • #5 16554402
    Kaliber PC - Service

    Poziom 22  
    Piotrus_999 napisał:
    dondu napisał:
    Gdzie kolega widzi, by wybrany kanał ADC7 był ustawiony na wyjście?
    widze komentarz : reszta ADC jako wyjścia. Nie wiem jak to rozumiec, schematu połączeń brak


    Mimo, że wpisuję (czasami) rejestry binarnie a nie szesnastkowo (co umożliwia środowisko Atmel Studio 7), to w tym przypadku właśnie chodzi o to, że ADC7 służy jako wejście i to na nim opiera się pomiar, natomiast reszta jest ustawiona jako wyjścia, bo... są bezużyteczne dla mnie (nie są do niczego podłączone, nie potrzebuję też pomiarów z innych kanałów), a "każdy nieużywany pin powinien być ustawiony jako wyjście w stanie wysokim lub ewentualnie jako wejście z podpiętym rezystorem do GND" (cytując +/- z bloga Dondu).

    Dondu - podejrzewałem, że ten ADATE może mieć na coś wpływ, ale ostatecznie jakoś mi nie spasował... strzelam, że sugerujesz ustawienie również jego, więc jak tylko poprawię program dam znać czy problem został rozwiązany.

    Dodano po 15 [godziny] 4 [minuty]:

    No i oczywiście ;) Jeden bit, którego zabrakło a który [nie wiadomo czemu] pominąłem wystarczył do sukcesu.

    Dzięki za zwrócenie uwagi.
REKLAMA