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

atmega8 i RC6 - jak zdekodować?

Maryush 22 Mar 2009 18:14 2331 1
REKLAMA
  • #1 6317319
    Maryush
    Poziom 22  
    Witam,

    programuję w bascomie i są tam gotowe procedury odbioru RC5, ale RC6 niestety już nie. Trochę to dziwne, bo procedury do nadawania w RC6 również są. Mam kilka pilotów w domu z czego tylko jeden pracuje w RC5, reszta (jak się domyślam) powinna pracować w RC6 i potrzebowałbym właśnie z użyciem atmega8 obsłużyć tą resztę. Robił ktoś może obsługę RC6 pod bascoma? Szukam w sieci, ale nic nie znajduję.
  • REKLAMA
  • #2 6317504
    ZbeeGin
    Poziom 39  
    Proponowałbym najpierw sprawdzić oscyloskopowo jak nadaje ta "reszta" pilotów. Niekoniecznie musi to być RC6. Może to być np. SIRC.

    Na podstawie tego możesz taką procedurkę napisać samemu: http://www.sbprojects.com/knowledge/ir/rc6.htm

    Jak to robi BASCOM przy RC5?
    Przy odczytywaniu kodów przez GETRC5 robi to po najmniejszej linii oporu. Ustawia licznik TIMER0 by zliczał równe odcinki czasu (63,5us) w przerwaniu. Następnie w głównej pętli odbioru sprawdza ramki czasowe przychodzących par impulsów "10", "01", i jak coś się nie zgadza to zwraca w R18(adres) i R17(rozkaz) wartości 255 oraz natychmiast wychodzi. Inaczej odpowiednio ustawia/zeruje znacznik C i przesuwa go bitowo do R18:R17. Po odliczeniu już właściwej ilości par bitów (kod RC5 ma ich 14) kończy i zwraca poprawiony wynik w R18 i R17, które po wyjściu lądują w zmiennych użytkownika podanych jako parametr.

    W RC6 będzie ta trudność, iż występują tu różne czasy impulsów kontrolnego i rozbiegowego, ale część odpowiedzialna za samą transmisję "0" i "1" już jest taka sama jak w kodzie RC5.
REKLAMA