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.

Tryb CTC Timer1 Atmega16A

krzysiek151993 11 Kwi 2016 21:26 630 7
  • #1 11 Kwi 2016 21:26
    krzysiek151993
    Poziom 2  

    Czy mógy mi ktoś wytknąć błąd, zadaniem tego programu było generowanie częstotliwości 50hz przez piewszą sekudę, a następnie 100hz przez 2, i tak w kółko, jednak dioda na porcie a mruga, a częstotliwości na oc1a brak.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 7
  • #2 11 Kwi 2016 21:50
    cr08
    Poziom 9  

    Zainkluduj bibliotekę przerwań, włącz przerwania sei() i stwórz procedurę obsługi przerwania ISR (TIMER1_COMPA_vect)

    0
  • #3 11 Kwi 2016 21:54
    2675900
    Użytkownik usunął konto  
  • #4 11 Kwi 2016 21:55
    ZeeWolf
    Poziom 27  

    Częstotliwość CPU zdefiniowana jako 12MHz, a czy z taką fizycznie chodzi? Delay będzie szalał, jeżeli deklaracja F_CPU nie jest zgodna ze stanem faktycznym.

    A jak kolega sprawdza częstotliwość zmian stanu na porcie OC1A?

    0
  • #5 11 Kwi 2016 22:04
    2675900
    Użytkownik usunął konto  
  • #6 11 Kwi 2016 22:18
    krzysiek151993
    Poziom 2  

    Diodą sprawdzam tylko pętlę,(widać w programie zmiany w porcie a) kwarc fizycznie 12Mhz, na oc1a przebieg sprawdzam analizatorm logicznym saelae;)

    A co do definicji bitów to tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Przeliczałem na hex, ponieważ kiedyś naprawiło to sprawę, być może robię gdzieś tu błąd.

    0
  • Pomocny post
    #7 11 Kwi 2016 22:50
    ZeeWolf
    Poziom 27  

    Na próbę zrób:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    i sprawdź, czy są zmiany na pinie D5.

    0
  • #8 11 Kwi 2016 22:58
    krzysiek151993
    Poziom 2  

    ZeeWolf napisał:
    Na próbę zrób:
    i sprawdź, czy są zmiany na pinie D5.


    Na to bym nie wpadł, z noty katalogowej wynika, że nie powinno się podciągać jako wyjście, robi się to wpisując bity w COM1A1 i Com1A0.

    No i oczywiście działa :)

    0