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

[Bascom] Programowy PWM do diody RGB

misiek85_1 15 Lut 2010 20:15 2586 3
REKLAMA
  • #1 7699519
    misiek85_1
    Poziom 11  
    Witam,

    wczoraj zacząłem nową dla mnie dziedzinę - programowy PWM. Poczytałem o tej idei itp itp. Wiem jak działa, nawet napisałem sam program, który też działa :)

    
    Przerwanie:                                 ' co 16 us 
    Incr Licznik
    
    
    If Licznik > 100 Then
    Licznik = 0
    Set R
    Set G
    Set B
    End If
                                                     
    If Licznik > Red_color Then : Reset R : Else : Set R : End If
    If Licznik > Green_color Then : Reset G : Else : Set G : End If
    If Licznik > Blue_color Then : Reset B : Else : Set B : End If
    Return
    


    Problem jedynie jest taki, iż 0 oznacza ciągłe wypełnienie 1, a 100 ciągle wypełnienie 0. Ale to się chyba odwróci, gdy zastosuje tranzystor npn, prawda?

    Główne pytanie to:
    W jaki sposób dodać obsługę szybkości zmieniania animacji, oraz jak zaimplementować sama funkcję płynnych zmian kolorów? Może coś opartego na Timerze? - nie wiem... Proszę o napisanie idei, najlepiej w punktach (byle nie gotowego programu - chce sam) ;) Dziękuje
  • REKLAMA
  • #2 7701084
    Smilox
    Poziom 18  
    Żeby zmieniać czas odstępów między zmianiami najprościej chyba byłoby zrobić coś takiego:

    Przerwanie:                                 ' co 16 us
    Incr Licznik
    x=0
    do 
    waitus 10
    incr X
    loop until X>Y
    
    If Licznik > 100 Then
    Licznik = 0
    Set R
    Set G
    Set B
    End If
                                                     
    If Licznik > Red_color Then : Reset R : Else : Set R : End If
    If Licznik > Green_color Then : Reset G : Else : Set G : End If
    If Licznik > Blue_color Then : Reset B : Else : Set B : End If
    Return 


    Gdzie Y powinno być zmienną którą możesz zmieniać (inkrementować) przyciskiem wywołującym przerwanie, bądź w głównej pętli programu.
  • REKLAMA
  • #3 7701130
    misiek85_1
    Poziom 11  
    W przerwanie pakować polecenie wait? To chyba niezbyt trafiony pomysł, z tego co wyczytałem... Ale dzięki za chęci :)
REKLAMA