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.

[C][ATMEGA16] - PWM z korekcją fazy

Noisy_daddy 17 Kwi 2013 00:40 1242 4
  • #1 17 Kwi 2013 00:40
    Noisy_daddy
    Poziom 14  

    Mam jedno pytanie. Chcę użyć dwóch timerów T0 i T1 i trybu pwm z korekcją fazy do sterowania dwoma silnikami DC (przez mostek l293d). Wiem jak się ustawia odpowiednie bity rejestru TCCR, ale chciałbym się upewnić czy dobrze myślę w kwestii połaczenia układu. Po pierwsze czy samo to, że manipuluję bitami rejestru TCCR już determinuje to, że odpowiednie piny będą spełniały funkcjonalność pwm, czy muszę dodatkowo coś ustawić? Zgodnie z datasheetem bity PB0 i PB1 służą jako źródło impulsów do licznika. Rozumiem, że jeśli używam pwm to się to wszystko ustawi niezależnie od odpowiednich wartości w rejestrze DDRB? A 'z-pwm-owany' sygnał wyjściowy z timerów T0 i T1 będzie na pinach PB3 i PD4/PD5 i te piny muszę podłączyć do pinów enable1 i enable2 mostka. Czy tak?

    0 4
  • #2 17 Kwi 2013 05:32
    dondu
    Moderator Mikrokontrolery Projektowanie

    Zasada jest prosta:
    - jeżeli nie jesteś pewien, a nie chce Ci się sprawdzać datasheet, ustawiasz pin jako wyjście i po kłopocie,
    - porawne rozwiązanie - sprawdzamy datasheet:

    Cytat:
    The general I/O port function is overridden by the Output Compare (OC0) from the Waveform
    Generator if either of the COM01:0 bits are set. However, the OC0 pin direction (input or output)
    is still controlled by the Data Direction Register (DDR) for the port pin. The Data Direction Register
    bit for the OC0 pin (DDR_OC0) must be set as output before the OC0 value is visible on the
    pin. The port override function is independent of the Waveform Generation mode.
    The design of the output compare pin logic allows initialization of the OC0 state before the output
    is enabled.

    0
  • #3 17 Kwi 2013 10:26
    Noisy_daddy
    Poziom 14  

    Ok, czyli w miarę doczytalem. Dalej mnie te piny T0 i T1 jednak zastanawiają. Czyli noe muszą być ustawiane jako wejścia? I ten sygnal będzie brany z wewnętrznego zegara czy jak?

    0
  • #4 17 Kwi 2013 16:01
    dondu
    Moderator Mikrokontrolery Projektowanie

    Jeśli dobrze rozumiem Twój post, to chcesz sterować silnikiem za wyjść dwóch timerów. Nie jesteś pewnie, czy masz podawać sygnał zegarowy na piny T0 i T1 - czy tak?

    Standardowo mikrokontroler podaje sygnał zegara na wejście timera, przez preskaler.
    Ty możesz jednak zdecydować, że sygnał będzie podawany z pinów T0 i T1.

    Może pokaż jak chcesz te timery ustawić - łatwiej będzie nam zrozumieć co chcesz osiągnąć.

    0
  • #5 17 Kwi 2013 22:22
    Noisy_daddy
    Poziom 14  

    Niee, 2 timery, 2 silniki. Ale już sobie poradziłem. Jeszcze jedno małe pytanko, jeśli wybieram wewnętrzne źródło impulsu zegarowego to te piny T0 i T1 są normalnym portami I/O?

    0