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 - Ustawianie PWM w zależności od częstotliwości z czujnika

moer91 06 Maj 2014 16:19 1077 2
REKLAMA
  • #1 13575528
    moer91
    Poziom 10  
    Witam, mam problem ze sterowanie sygnałem PWM. Program służy do zaczytywania wartości częstotliwości z czujnika TCS3200 . W zależności od koloru jaki wykryje czujnik ma nastąpić zmiana wartości wypełnienia PWMa. W tym momencie dioda, którą mam podłączona pod wyjście OC2 cały czas świeci tak samo, niezależnie od wartości OCR2 . Próbowałem na różne sposoby dojść dlaczego tak się dzieje, ale nie udało mi się. Może mam gdzieś kardynalny błąd, którego nie dostrzegam(są to moje początki z mikro kontrolerami).


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 13577951
    Szumlus
    Poziom 17  
    Witam

    Najpierw niech kolega "na sucho" sprawdzi PWM manipulując zawartością OCR.
    Jeśli będzie ok to sprawdzić trzeba czy przypisanie na sztywno do zmiennej pomoc różnych wartości daje rezultaty.
    Jeśli wszytko będzie ok sprawdzić trzeba pomiar częstotliwości.
    Jak będę miał chwile to popatrzę na kod i jakiś schemat by się przydał może tam jest błąd ;]

    Niech jeszcze kolega sobie sprawdzi czy ten scalak nie ma wyjścia częstotliwości typu otwarty kolektor.

    po godzinie:

    A i ma kolega błąd.........

    TCCR2 jest ustawiony poprawnie do momentu startu timera.....
    kasuje kolega swoje ustawienia niepoprawnym zapisem bitów preskalera
    całość trzeba logicznie zsumować aby nie nadpisać poprzednich ustawień bitów:

    TCCR2= (1<<WGM21)|(1<<WGM20)|(1<<COM21)|(1<<COM20);//szybkie PWM

    TCCR2 |= (1<<CS21);//|(1<<CS20); preskaler 8

    proponuje sprawdzić cały program czy nie ma jeszcze gdzieś takiego błędu,
    poza tym ma kolega przecież symulator w nim dało by się ten błąd szybko wyłapać podglądając zawartości rejestrów konfiguracyjnych

    Pozdrawiam,
    Marcin
  • #3 13578635
    moer91
    Poziom 10  
    Dziękuje za odpowiedź:). Cały układ jeszcze nie działa tak jakbym chciał, ale już jest nieźle. Jak skończę to podzielę się cały kodem:)
REKLAMA