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

Atmega328p - Konfiguracja 6 kanałów PWM, problem z OCR0B

cloudpol7 01 Mar 2017 21:57 1086 4
  • #1 16316512
    cloudpol7
    Poziom 16  
    Witam
    Po paru projektach, wszystkich na atmega8 z przyzwyczajenia i wystarczających zasobów, do zastosowań potrzebowałem coś z sześcioma kanałami PWM.
    Projekt i PCB zrobione i złożone i na starcie w programowaniu mam problem nie do pokonania dla mnie.
    Zacząłem od konfiguracji Timer0 i nie mogę zmusić drugiego kanału (OCR0B) do wysterowania wyjścia. Zawsze jest 0V. N-ty raz wertuje datasheet i niby wszystko jest ok ale natknąłem się na podobny problem z sugestią w rozwiązaniu że timer0 i 2 nie potrafia równocześnie niezależnie działać i ma z tym coś wspólnego rejestr WGM02 ale nie do końca rozumiem to z datasheeta. Proszę o potwierdzenie lub wskazanie błędu w kodzie.
    Port w miejscu OCR0B da się wysterować 1/0 normalnie. Już nawet wymieniałem atmege na druga bez skutku.
    Jego fragment ale tylko on odpowiada za PWM:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #2 16316659
    dondu
    Moderator na urlopie...
    Może to:

    Cytat:
    Note:
    1. A special case occurs when OCR0B equals TOP and COM0B1 is set. In this case, the Compare
    Match is ignored, but the set or clear is done at TOP.
    Refer to Phase Correct PWM Mode for
    details.


    Sprawdź czy działa Fast PWM.
  • Pomocny post
    #3 16316668
    michalko12
    Specjalista - Mikrokontrolery
    cloudpol7 napisał:
    DDRD =_BV(3);
    DDRD =_BV(5);
    DDRD =_BV(6);
    DDRB =_BV(1);
    DDRB =_BV(2);
    DDRB =_BV(3);


    Nie działa to tak jak byś chciał. Clasyczny błąd "=" zamiast "|="
  • #4 16316685
    cloudpol7
    Poziom 16  
    @dondu
    wszystkie tryby PWM już sprawdzałem bez powiodzenia
    @michalko12
    No taki byk a jak go nie zauważyłem!
    5s poprawek i śmiga jak należy, a ja pół dnia majstrowałem w różnych rejestrach...
    Dzięki wielkie za pomoc i spostrzegawczość :D
REKLAMA