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

Problem z powtarzalnością odczytu z ADC w Atmega16-16AU

Prodig 25 Lut 2009 15:39 1519 6
REKLAMA
  • #1 6202681
    Prodig
    Poziom 20  
    Witam serdecznie.

    Nie umiem sobie poradzić z pewnym problemem. Za pomocą prostej pętli odczytuję wartość z ADC i przedstawiam ją na LCD. Jest wszystko OK - wynik nie zmienia się nawet po zresetowaniu procka.

    Teraz inny program. Procek jest w pętli i naciśnięcie przycisku powoduje wyjście z pętli i skok do pętli odczytującej dane z ADC. Są rozbieżności w odczycie w granicach +/-5 względem kolejnych uruchomień pętli z odczytem. Podczas wykonywania pętli z odczytem wynik się nie zmienia, jednak jest ta rozbieżność w stosunku do poprzednio wykonanej pętli/

    Jeszcze inny program. Wykonywana jest przerwanie co jakiś czas, które powoduje odczyt z ADC. W niezależnej pętli jest oczekiwanie na przycisk. Po naciśnięciu przycisku zmienna z daną odczytaną z ADC kopiowana jest do innej zmiennej. I tu znowu są rozbieżności +/-5 za każdym odczytem.

    O co tu chodzi? Ne wiem czy jasno przedstawiłem problem i czy nie zagmatwałem.

    Wszystkie programy w BascomAVR.
  • REKLAMA
  • #2 6202796
    klops_mops
    Poziom 17  
    Najlepiej to pokaż kod :) W tedy na pewno znajdzie się dużo osób, które Ci pomogą.
  • REKLAMA
  • #3 6204634
    janbernat
    Poziom 38  
    Procesor działa z określoną(skończoną) częstotliwością.
    Jak jest w pętli i z niej wychodzi albo wchodzi w przerwanie
    to wykonuje wiele czynności(zapamiętaj co było w rejestrach, odłóż na stos itp.)
    To zajmuje czas.
    Trzeba obliczyć(oszacować) ile czasu.
    Zależy od częstotliwości kwarcu, szybkości zmian na
    ADC i programu.
    Ideały są tylko w Niebie.
  • #4 6205753
    elektryk
    Poziom 42  
    Ja bym powiedział że rozbieżności +/- 5 przy zachowaniu dobrej wartości średniej są absolutnie normalne przy kiepsko filtrowanym zasilaniu i źle dobranej impedancji źródła mierzone. Co do pierwszego przypadku że napięcie jest zawsze stałe, to ja bym strzelał że jest błąd w programie polegającym na braku inicjacjowania pomiaru. Przynajmniej jeden bit losowego błędu powinien się pojawić.
  • REKLAMA
  • #5 6206172
    bartekgajos
    Poziom 14  
    Witam

    Zgadzam się z przedmówcą.

    Również miałem problem +/- 2 bity na ADC, Rozwiązaniem okazało się jedynie uśrenianie kolejnych wyników.

    błąd 2 bity na rozdzielczości 10 bitów, przy VREF2.5 wolta to i tak niewiele.

    Pozdrawiam
    Bartek
  • #6 6207559
    snow
    Poziom 31  
    Zawsze można dać filtr dolnoprzepustowy na wejściu przetwornika i uzyskać filtrowanie.
  • REKLAMA
  • #7 6215490
    KRZAG
    Poziom 12  
    najlepiej pokaz schemat i kod programu cos pokabinujemy
REKLAMA