Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATTINY45 -> PWM na wyjściu PWM1B (BASCOM)

greg_matrix 05 Lip 2006 13:55 2292 1
  • #1 05 Lip 2006 13:55
    greg_matrix
    Poziom 16  

    Witam,
    Natknąłem się na problem dotyczący konfiguracji licznika Timer1. Najprawdopodobniej BASCOM zawiera jakiś błąd i używając standardowych instrucji uzyskanie PWM z tego licznika nie jest możliwe. Używając standardowych "Config Timer1..." nie można nawet zmusić Timer1 do zwyczajnego zliczania...

    Mniejsza o BASCOM, postanowiłem zrobić to samo wpisując bezpośrednio odpowiednie wartości do rejestrów i w ten sposób skonfigurować Timer1 (Nota katalogowa, str od 90 -96). Sukces jest, ale niestety połowiczny.

    Do testowania napisałem taki prosty programik w którym konfiguruję wyjście PWM1A jako PWM a wyjście PWM1B jest odłączone od PWM.

    Code:
    Tccr1 = &B01110100
    
    Gtccr = &B00000000

    Dim K As Byte

    Do
       For K = 1 To 250
          Ocr1b = K
          Ocr1a = K
          Waitms 10
       Next K
    Loop
    End

    Wypełnienie przebiegu zależy od wartości wpisanej do rejestru Ocr1a. Do rejestru Ocr1b wpisuję to samo co do Ocr1a. Prescaler ustawiony na 8. W tej konfiguracji pin PWM1B jest "wolny" tzn używam go do zaświecania diody LED niezależnie od wyjścia PWM1A. TO DZIAŁA tak jak trzeba.

    Teraz konfiguruję Timer1 żeby PWM było na wyjściu PWM1B, wypełnienie będzie zależało od wartości w rejestrze Ocr1b. Pin PWM1B chcę mieć "wolny". Zgodnie z notą katalogową (tak mi się przynajmniej wydaje) dwie pierwsze linijki zmieniam tak:
    Code:
    Tccr1 = &B00000100
    
    Gtccr = &B01110000

    i niestety to już NIE DZIAŁA... Na wyjściu PWM1B jest przez cały czas stan wysoki.

    Dodam tylko, że kiedy obydwa wejścia skonfiguruję jako PWM to jest OK:
    Code:
    Tccr1 = &B01110100
    
    Gtccr = &B01110000


    Moje pytanie:
    Czy da się użyć tylko wyjścia PWM1B do generowania przebiegu PWM? W nocie katalogowej nie znalazłem żadnej wzmianki, żeby się nie dało.

    Jeśli ktoś ma pod ręką taki mikrokontroler to może mógłby sprawdzić czy nie robię gdzieś jakiegoś błędu??

    0 1
  • #2 20 Lut 2007 13:18
    neutronix
    Poziom 12  

    Hej!
    Masz rację - ztym kontrolerem (lub Bascomem) jest coś nie tak,
    ponieważ próbowałem zrobić na nim prosty sterownik z użyciem IR
    "Get RC5", i niestety bascom wywala error, że niemożliwe w tym chipie
    najpewniej błąd Timera (nie pamiętam 0 czy 1).
    Tak zechyba nie robisz błędu, tylko w Bascomie w stosunku do tego procka jest coś spaprane.

    0