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

[M32][Bascom] prośba o zerknięcie w kod programu z PWM

Antystatyczny 02 Lip 2012 22:42 1310 2
REKLAMA
  • #1 11065286
    Antystatyczny
    Poziom 16  
    Witam.

    Przedstawiam bardzo prosty programik mający na celu regulację jasności świecenia pojedynczej diody podłaczonej anodą do OC1A.
    Kod: text
    Zaloguj się, aby zobaczyć kod

    przycisk podłaczony do piny c4 ma zwiększać jasność świecenia, a ten podłączony do pinu C3 zmniejszać. Konfigurację timera zerżnąłem żywcem z helpa Bascoma nie do końca rozumiejąc ustawienia.
    Bardzo prosze o wytknięcie błędu. Obecnie dioda świeci się chyba pełną swą jasnością.

    Dodano po 6 [minuty]:

    Zmieniłem program na takowy:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Teraz dioda pulsuje, niby płynnie, ale nie zaczyna od zerowej jasności świecenia.
  • REKLAMA
  • #2 11065628
    jacekk232
    Poziom 17  
    Musisz podciągnąć wejścia do Vcc, czyli włączyć wewnętrzne rezystory podciągające.

    A mówiąc prościej: W kodzie nigdzie nie masz poleceń do konfiguracji pinów, czyli piny są domyślnie wejściami w stanie wysokiej impedancji. A to znaczy, że napięcie na nich "pływa" od zera do Vcc. I kiedy napięcie na pinie jest w okolicy zera polecenie Debounce reaguje tak jakby był wciśnięty przycisk.

    Poczytaj w helpie o konfiguracji pinów.

    Do pierwszego programu przed pętlą główną dodaj
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 11065670
    Antystatyczny
    Poziom 16  
    Zapomniałem o pull up, już poprawiam!

    Dodano po 6 [minuty]:

    Ostateczne wygląd ćwiczenia wygląda następująco:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Zmieniłem timer na 8 bitowy, dodałem po jednej linii w obsłudze dodawania i odejmowania jasności. Nasuwa mi się pytanie: Dlaczego na starcie dioda świeci sie pełną jasnością? Ma to jakiś związek z clear up or down?

    Dodano po 1 [minuty]:

    Teraz mam regulację jasności świecenia diody, zapomniałem napisać.
    Konfiguracja portu C pomogła.

    Dodano po 25 [minuty]:

    Teraz mam następujący kod:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Teraz kod działa. Oczywiście anodę diody podłaczyłem do wyjścia OC0. Wiele mnie nauczyło to ćwiczenie. Dziekuję za podpowiedzi :)
REKLAMA