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

Przetworzenie kodu pilota - Bascom

misiekdg 06 Mar 2006 00:26 1421 0
  • #1
    misiekdg
    Poziom 13  
    Mam w domu 4 piloty - Samsung (wieża), karta tv (pixel view), Panasonic (tv), samsung (tv) i żaden nie działa mi przy zastosowaniu funkcji getrc5 :( Wpadłem na pomysł napisania własnej procedury obsługi pilota. Już zrobiłem pierwszy krok ku temu, zależy mi na pilocie od wieży, pracuje on na układze bu2478. Chyba nie jest to RC5. przy pomocy komputera sprawdziłem jego przebieg wygląda on następująco

    Przetworzenie kodu pilota - Bascom

    pasuje mi to najbardziej do JVC http://www.xs4all.nl/~sbp/knowledge/ir/jvc.htm

    Jak dobrze myślę podpinając odbiornik do jednego z wejść mikrokontrolera (AtMega16) należy po sygnale startu zacząć zliczać czas przerw pomiędzy impulsami. i tak ok 1ms = logicznemu zeru, ok 2ms= logicznej 1. jest jakas funkcja która mogła by to robic?? ile bitów moze być w jedny cyklu??

    Dodano po 3 [godziny] 24 [minuty]:

    Wpadłem na jeden sposób ale jest on trochę "śmieszny" ale skuteczny. Wygląda następująco:

    Code:


    Dim Czas As Byte
     Czas = 2

      Dim Licznik1 As Integer
      Dim Licznik2 As Integer
      Dim Licznik3 As Integer
      ...
      Dim Licznik17 As Integer
      ...
      Dim Licznik31 As Integer
      Dim Licznik32 As Integer

    do

      If Pinb.1 = 0 Then

    Licznik1 = Pinb.1
    Waitms Czas

    Licznik2 = Pinb.1
    Waitms Czas

    Licznik3 = Pinb.1
    Waitms Czas
    ...
    Licznik17 = Pinb.1
    Waitms Czas
    ...
    Licznik32 = Pinb.1
    Waitms Czas


    Cls

       Lcd Licznik1 ; Licznik2 ; Licznik3 ; Licznik4 ; Licznik5 ; Licznik6 ; Licznik7 ; Licznik8 ; Licznik9 ; Licznik10 ; Licznik11 ; Licznik12 ; Licznik13 ; Licznik14; Licznik15 ; Licznik16 ; Licznik17 ; Licznik18
       
     Locate 2 , 1
       
       Lcd Licznik19 ; Licznik20 ; Licznik21 ; Licznik22 ; Licznik23 ; Licznik24 ; Licznik25 ; Licznik26 ; Licznik27 ; Licznik28 ; Licznik29 ; Licznik30 ; Licznik31 ; Licznik32

     Wait 1

     Licznik1 = 2
     Licznik2 = 2
     Licznik3 = 2
    ...
     Licznik17=2
    ...
     Licznik32=2

       End If

    loop


    program pobiera stan wyjścia z odbiornika podczerwieni co wybrany czas (w tym przypadku 2ms) i zapisuje kolejno do zmiennych "licznik1","licznik2"...

    Następnie wynik jest wyświetlany na wyświetlaczu. Wsumie dobry sposób na prześledzenie działania pilotów, doskonale widać róznice w bitach przy naciskaniu poszczególnych przycisków pilota. im większa szybkośc odczytu tym lepsza dokładność, ale wymaga to wtedy użycia większej ilości zmiennych, aby zapisać cały cykl "rozkazu". No chyba że się już wie po jakim czacie są wysyłane bity codu to już można się do nich ograniczyć. Po poruwnaniu bitów można sterować czym się chce, nawet pilotami pierwszej generacji :) . Muszę to jeszcze przerobić na zmienne tablicowe, bedzie wtedy zajmowało o wiele mniej miejsca i pamięci. Jak ktoś wpadnie na jakiś inny sposób rozwiązania tego problemu proszę o wiadomość.