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

Atmega32 - Jak zaimplementować programowy PWM dla diody LED?

Templarious 30 Mar 2013 12:04 2274 1
REKLAMA
  • #1 12131433
    Templarious
    Poziom 22  
    Witam Serdecznie.
    Już założyłem raz ten temat ale został skasowany z powodu braku schematu.
    Zamieszczam schemat w załączniku, oraz kod :
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Mój problem polega na tym, że nie wychodzi mi wykonanie programowego PWM dla dowolnego portu I/O - w tym przypadku dla portu PC6 (dioda na schemacie).

    Posiadam książkę Tomasz Francuza.
    Przeczytałem dokładnie wszystko o PWM ale nadal mam problemy.
    Chciałbym wykonać płynne rozjaśnianie i gaszenie diody LED.
    Z dodatkowych informacji, fusbity zostały ustawione na zegar zew. 16 MHz

    Prosiłbym o szybką pomoc.
    Pozdrawiam.
  • REKLAMA
  • #2 12148617
    Szumlus
    Poziom 17  
    Witam,

    Jeśli kolega czytał o PWM to wie pewnie iż do PWM musimy mieć stały okres a zmienne wypełnienie. Jak kolega utrzymuje stały okres PWM korzystając z trybu CTC w TMR0? W kodzie programu się nie doszukałem.

    Trzeba uruchomić TMR0 w normalnym trybie i skorzystać z przerwania od przepełnienia i porównania jednocześnie.

    W przepełnieniu włączamy wszystkie wyjścia PWM ładujemy nową wartość PWM do rejestru OCR a w przerwaniu od porównania wyłączamy wyjścia PWM.

    Pozdrawiam,
    Marcin
REKLAMA