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

[AVR][c]Debugger - nieprawidłowe działanie PWM

kingbright 10 Lis 2009 00:49 1932 5
  • #1 7239559
    kingbright
    Poziom 9  
    Witam. Chciałem skorzystać z Timera1 w procesorze Atmega8 w trybie fast PWM nastawiłem rejestry w nastepujący sposób:

    TCCR1A |= _BV(WGM11) | _BV(WGM10) | _BV(COM1A1) | _BV(COM1B1);
    TCCR1b |= _BV(WGM13) | _BV(WGM12) | _BV(CS10);
    DDRB = 0xFF;

    Oczywiście wszystsko się kompiluje itd. ale problem występuję gdy próbuję wpisać do OCR1A coś większego niż 0x03FF czyli timer zachowuje się jakby pracował w trybie PWM-10bit. Korzystałem z Debugera. Wszystkie moje próby były bezskuteczne. Czy ktoś wie jaka jest przyczyna? A może gdzieś robię błąd??
  • #3 7240431
    kingbright
    Poziom 9  
    Problem w tym, że na procesorze to też nie działa :/ więc stwierdzenie, że to wina źle działającego Debuggera nie jest tutaj zbyt trafne..
  • #4 7241644
    ZbeeGin
    Poziom 39  
    Debugger z AVR Studio sobie z pewnymi konfiguracjami PWM dla liczników nie radzi, zatem to pierwszy element, który może dawać fałszywe wyniki.
  • #5 7242682
    kingbright
    Poziom 9  
    Znaczy chodzi o to, że Debugger robi to samo co procesor po wgraniu programu. Ale nie o to mi dokładnie chodzi. Chciałem po prostu wiedzieć czy te bity konfiguracyjne dla trybu Fast PWM mam dobrze ustawione bo już dość długo nad tym siedzę i nie potrafię dojść do ładu.
  • #6 7243673
    ZbeeGin
    Poziom 39  
    kingbright napisał:
    Chciałem po prostu wiedzieć czy te bity konfiguracyjne dla trybu Fast PWM mam dobrze ustawione bo już dość długo nad tym siedzę i nie potrafię dojść do ładu.

    To zależy co chciałeś uzyskać. Jeśli chodziło Ci o tryb FAST PWM z definiowaną rozdzielczością to do tego przeznaczone są tryby 14 i 15. W trybie 15 wartość wpisana do OCR1A definiuje rozdzielczość jaką będzie miał PWM - czyli do jakiej wartości licznik będzie liczył po której się wyzeruje i rozpocznie następny cykl. Minimalna rozdzielczość to 2 bity, maksymalna 16 bitów. Wypełnienie ustala się już w OCR1B i na OC1B trzeba się spodziewać impulsów z PWM, gdyż OC1A nie może być w tym celu wykorzystany (Ale można na nim generować przebieg prostokątny o wypełnieniu 50% o częstotliwości 2x niższej niż PWM). Takich ograniczeń nie ma, gdy użyty jest tryb 14. Oba wyjścia OC1A/OC1B mogą służyć jako generatory PWM, gdyż oba rejestry OCR1A/B są dostępne.

    [AVR][c]Debugger - nieprawidłowe działanie PWM

    Jak widać tryby FAST PWM to także 5, 6, 7; ale tych nie można już dodatkowo konfigurować.
REKLAMA