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

lampka rgb+rc5 na timer1-bascom+atmega 16

maxled 18 Kwi 2009 10:51 3151 3
REKLAMA
  • #1 6428172
    maxled
    Poziom 10  
    Witam chcę zrobić lampke rgb sterowaną na pilota rc5, jednak napotykam pewien problem:
    kod programu

    $regfile = "m16def.dat"
    $crystal = 8000000
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
    Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Down , Prescale = 1
    
    Pwm1a = 0
    Pwm1b = 0
    Ocr2 = 255
    
    Dim R As Byte
    Dim G As Byte
    Dim B As Byte
    
    
    Do
    
    
    
    Wait 1
    
    For R = 0 To 255
    Pwm1a = R
    Waitms 10
    Next R
    
    Wait 1
    
    For B = 255 To 0 Step -1
    Ocr2 = B
    Waitms 10
    Next B
    
    Wait 1
    
    For G = 0 To 255
    Pwm1b = G
    Waitms 10
    Next G
    
    Wait 1
    
    For R = 255 To 0 Step -1
    Pwm1a = R
    Waitms 10
    Next R
    
    Wait 1
    
    For B = 0 To 255
    Ocr2 = B
    Waitms 10
    Next B
    
    Wait 1
    
    For G = 255 To 0 Step -1
    Pwm1b = G
    Waitms 10
    Next G
    
    Loop
    End


    Gdy zrobie obsługe rc5 na timer0 to trzeba albo długo trzymać przycisk, albo program zamula i zmiany kolorów następują za wolno (w zależności od tego jak wplete obsługe rc5). chciałbym zrobić rc5 na timer1.ale nie wiem jak to zrobić i czy co kolwiek to coś da.na początku (rc5 na timer0) robiłem tak aby po naciśniśnięciu guzika na pilocie pojawiał sie na lcd jakiś napis, tak aby zobaczyć jak to sie zachowuje, jednak efekty były takie jak napisałem powyżej.wiele innych modyfikacji programu (dodanie przerwań, programowe pwm itd) nie wiele pomagały (program albo za wolno chodził, albo diody rozbłyskiwały pomiędzy przejściami).myśle ze problem jest w tym ze do programu chciałem wykożystać timer0 i timer1.czy ktoś ma pomysł jak to rozwiązać?tak aby kolory zmieniały sie bez zamulania lub rozbłyskiwania, a po naciśnięciu guzika na pilocie np na lcd pojawiał sie napis.(potem przerobie to sobie program na własne potrzeby np skok do podprogramu).
  • REKLAMA
  • #2 6585449
    DK00
    Poziom 1  
    spróbuj dać mniejszy czas np. 200 ms pomiędzy instrukcjami
  • REKLAMA
  • #3 6586588
    wader_669
    Poziom 28  
    przerwanie tyle ci powiem

    Dodano po 1 [minuty]:

    odbiornik rc daj pod jakiegos inta i w przerwaniu zrob getrc5
  • #4 6923101
    LARGO
    Poziom 11  
    Zgodzę się z przedmówcą

    Przerwanie od RC5. Przejście do etykiety odczytującej komendę następnie
    Select case.... W zależności od odczytanej komendy wykonuje operacje na zmiennych odpowiedzialnych za kolory.
    Ewentualnie wyświetla jeszcze jakieś info na LCD.

    Takie rozwiązanie powinno pomóc ;)
REKLAMA