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.

ATmega16 - nastawa timera 16-bitowego.

filip10 21 Lut 2017 23:55 504 5
  • #2 22 Lut 2017 01:10
    2675900
    Użytkownik usunął konto  
  • #3 22 Lut 2017 19:19
    filip10
    Poziom 9  

    TCCR1B |= (1<<CS12) | (1<<CS10);
    :D ok. działa.

    Dodano po 17 [godziny] 42 [minuty]:

    Mam problem jeszcze z przetwornikiem ADC w trybie free Run.
    Zrozumiałem to tak, że pomiar ciągły jest włączany ustawieniem 1 na ADATE i inicjowany ustawieniem 1 na ADSC.
    Co źle ustawiam?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #4 22 Lut 2017 21:01
    emarcus
    Poziom 35  

    filip10 napisał:
    TCCR1B |= (1<<CS12) | (1<<CS10);
    :D ok. działa.
    Dodano po 17 [godziny] 42 [minuty]:
    Mam problem jeszcze z przetwornikiem ADC w trybie free Run.
    Zrozumiałem to tak, że pomiar ciągły jest włączany ustawieniem 1 na ADATE i inicjowany ustawieniem 1 na ADSC.
    Co źle ustawiam?

    Może po kolei:
    ADEN: ADC Enable – (1/0) - włącza lub wyłącza układ ADC; jeżeli nie używany, bez potrzeby pobiera prąd i może być wyłączony.
    ADSC –start convertion: – kazdej, zarówno single jak i pierwszej dla free running.
    ADPS2:0 określa prescaler dla ADC (- podzielnik dla ustalenia częstotliwości pracy ADC)
    ADATE – włączenie automatycznej konversji z różnych źródeł;
    - należy jednak sprecyzować źródło starujące konversję edytując odpowiednie bity ADTS w rejestrze SFIOR. (Tabela 86).

    e marcus

    0
  • #5 22 Lut 2017 23:11
    filip10
    Poziom 9  

    ADTS2:0 dla trzech 0 jest free running mode.

    Dodano po 2 [godziny]:

    Doczytałem, że konwersja jest wykonywana wtedy gdy jest odczytywany ADC.
    Dodałem zmienną volatile int w main i w pętli głównej zapisuję do niej rejestr ADC.
    Teraz zadziałało.
    Czy to jest dobre rozwiązanie?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #6 23 Lut 2017 02:47
    emarcus
    Poziom 35  

    filip10 napisał:
    ADTS2:0 dla trzech 0 jest free running mode.


    Dobrze doczytałeś, tylko twój poprawiony kod jakoś o tym milczy, . . .
    Skoro bez tego masz free running mode, to pewnie jest dobrze (?). ..

    e marcus

    0