Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega16A][C] - Dziwne zachowanie po zmianie częstotliwości taktowania

ublizzard 03 Maj 2013 15:18 1092 2
  • #1 03 Maj 2013 15:18
    ublizzard
    Poziom 11  

    Napisałem taki oto program do pomiaru napięć:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Kiedy uC działa z wewnętrzną częstotliwością 1MHz i ma wyłączony JTAG, czyli ustawienia E1 i D9 wszystko jest ok (ADC4 i ADC5 mierzą napięcia).

    Kiedy jednak zmieniłem ustawienia na wewnętrzną częstotliwość 8MHz lub 4MHz i też wyłączony JTAG, czyli E4 i D9, to wyświetlacz pokazuje mi podobne napięcie w obu przypadkach.
    Przy wyższych częstotliwościach jak zmieniam opór potencjometru zmienia się też pomiar napięcia na ADC4 (w rzeczywistości to napięcie nie zmienia się).

    Układ wygląda tak: (na schemacie wykorzystałem inny uC)
    [Atmega16A][C] - Dziwne zachowanie po zmianie częstotliwości taktowania

    0 2
  • #2 03 Maj 2013 20:11
    excray
    Poziom 39  

    Czy poza zmianą fusów uwzględniłeś zmianę częstotliwości w kodzie? Czy wiesz jaka jest maksymalna częstotliwość próbkowania dla ADC? Czy wiesz do czego służą bity ADPS2-0 w ADCSRA?

    0
  • #3 04 Maj 2013 08:01
    ublizzard
    Poziom 11  

    Już wiem gdzie popełniłem błąd.
    Nie doczytałem dokładnie artykułu o częstotliwości próbkowania.
    W związku z tym nie zmieniałem ustwień preskalera, który dzielił przez 2.
    Więc częstotliwość próbkowania wynosiła 4MHz, co zdecydowanie wychodzi poza zalecany zakres 50-200kHz.
    Obecnie poprawiłem kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Teraz program chodzi jak powinien.

    0