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

[m8][Bascom] Rc5-Rc6 ilość poleceń + dekodowanie

nouki 24 Sty 2011 23:25 3023 13
REKLAMA
  • #1 9052932
    nouki
    Poziom 25  
    Witam.

    Może trochę lamerskie pytanie zadam ale nie mogę dojść co jest nie tak.

    W pomocy wyczytałem iż od wersji 1.11.6.9. zostały wprowadzone Zmiany czyli
    Funkcja GETRC5() odbiera teraz rozszerzone kody RC5.

    Moje pytanie:
    Stary odbierał do 64 komend wiec czemu odbiera mi nadal tyle skoro ma być więcej?
    mam bascoma 1.11.9.8

    
    $crystal = 8000000
    $regfile = "m8def.dat"
    Config Rc5 = Pinc.5
    Config Lcdbus = 4
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Pd.0 , Db5 = Pd.1 , Db6 = Pd.2 , Db7 = Pd.3 , E = Pd.4 , Rs = Pb.6
    Cursor Off
    Cls
    Enable Interrupts
    Dim Address As Byte , Command As Byte
    
    Do
     Getrc5(address , Command)
      If Address = 0 Then
         Command = Command And &B01111111
    Locate 2 , 1
    Lcd "a" ; Address ; " c " ; Command ; "         "
      End If
    Loop
    End
    
    ********** pilot****
    
    
    $crystal = 8000000
    $regfile = "m8def.dat"
    Dim Togbit As Byte , Command As Byte , Address As Byte , Wartosc As Integer , Wartosc1 As Byte
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    
    Command = 0
    Togbit = 0
    Address = 0
    
    Do
    
    Wartosc = Getadc(5)
    Wartosc = Wartosc / 4
    Wartosc1 = Wartosc
    Command = Wartosc1
    Rc5send Togbit , Address , Command
    Locate 1 , 1
    
    Loop
    
    End
    
  • REKLAMA
  • REKLAMA
  • #3 9053082
    nouki
    Poziom 25  
    nadaje diodą:oznaczenie : JSL303IRAC
    odbiornik TSOP31236
    dioda podłączona +5V <---[A Led K]---[220 Ohm]---> PB.1

    Wysyłanie działa przy reg. potencjometrem uzyskuje na odbiorniku rozkazy od 0 do 63 i tak w koło a teoretycznie wysyłam 0-255 nadajnikiem
  • #5 9055371
    nouki
    Poziom 25  
    xury napisał:
    A helpa czytaliśmy ? :)
    Cytat:
    For extended RC5 code, the extended bit is bit 6 of the command.
    The toggle bit is stored in bit 7 of the command


    A czytałeś co napisałem:

    help bascom :
    Zmiany wprowadzone od wersji 1.11.6.9.

    Funkcja GETRC5() odbiera teraz rozszerzone kody RC5. Podziękowania dla Gert Boer, który jest autorem tej implementacji.
    Są kody RC5 nawet w necie podane do 127

    przykłady:

    Command: Description
    88 pip on/off
    89 pip shift
    90 pip/main swap
    94 3/9 multiscan (search for 9 TV pictures and display in
    9

    pipshttp://en.wikipedia.org/wiki/RC-5
  • REKLAMA
  • #6 9055403
    piotrva
    VIP Zasłużony dla elektroda
    nie pytałem o to jaki masz model diody, ale co to za nadajnik, jaki jest program w module nadajnika czy to jakiś pilot uniwersalny, czy drugi uP, jeśli uP to jaki w nim siedzi program...
    bo do nadawania są 2 funkcje:
    RC5SENDEXT
    i
    RC5SEND
  • #7 9055430
    nouki
    Poziom 25  
    Są to 2 up programy w pierwszym poście.
    W polskim helpie nie ma tego polecenia "RC5SENDEXT" w nowszej zagranicznej znalazłem.

    p.s wysyłanie już coś wiem
    "A field bit, which denotes whether the command sent is in the lower field (logic 1 = 0 to 63 decimal) or the upper field (logic 0 = 64 to 127 decimal). The field bit was added later by Philips when it was realized that 64 commands per device were insufficient. Previously, the field bit was combined with the start bit. Many devices still use this original system."
  • REKLAMA
  • Pomocny post
    #8 9055668
    piotrva
    VIP Zasłużony dla elektroda
    no to jak kolega się wzoruje na helpach sprzed n lat to się nie dziwię. Polski help polecam jedynie jako orientacyjny jak ktoś nie zna angielskiego, albo zna słabo. A takto tylko angielskie helpy dołączone do najnowszych bascomów.
    nie wiem jak się to wszystko zachowuje, bo nie testowałem takiej transmisji rozszerzonej. spróbuj zmienić w nadajniku na rc5sendext, bo, na logikę, chcesz odbierać nowy standard, a nadajesz nadal w starym, więc "obcinanie" bajta o 3 bity zachodzi po stronie nadajnika, a co z odbiornikiem nadal nie wiadomo.
    Jeśli chcesz posyłać większe dane to możesz zawsze użyć kilka adresów, które podobnie jak ten bit wskażą "mnożnik" normalnej części danych
    EDIT:
    przetestowałem tryb rozszerzonej transmisji i załączam dla kolegi gotowe programiki z małymi ułatwieniami w postaci stałych. gotowy program nadaje kody od 0 do 127, drugi je poprawnie odbiera. bascom wersja 1.11.9.8
    
    '***nadajik***:
    $regfile = "2313def.dat"
    $crystal = 11059200
    Const Reserved = 7
    Const Bank = 6
    Const Togglebit = 5
    Dim Address As Byte , Command As Byte , Modebit As Byte
    Address = 0
    Command = 0
    Do
    Modebit.reserved = 1
    'obowiązkowy bit konieczny do poprawnej transmisji
    Modebit.togglebit = 0
    'togglebit, tak jak w normalnym rc5 - zasotoswanie - rozpoznawanie przytrzymania przycisku
    Modebit.bank = Not Command.6
    'tu zapisujemy tzw. bank - bit określający czy następujace po nim dane to liczba z zakresu 0-63 (zapisujemy 1)
    'czy 64-127 (zapisujemy 0)
    Rc5sendext Modebit , Address , Command
    Waitms 500
    If Command = 127 Then
    Incr Address
    Command = 0
    End If
    Incr Command
    
    
    Loop
    
    End
    
    
    '***odbiornik***:
    $regfile = "m644pdef.dat"
    '$regfile = "m32def.dat"
    '$regfile = "m16def.dat"
    
    $crystal = 16000000
    
    Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
    Config Lcd = 16 * 2
    
    Config Rc5 = Pina.0 , Timer = 2
    Enable Interrupts
    Cls
    Cursor Off Noblink
    Dim Address As Byte , Command As Byte
    Do
    Getrc5(address , Command)
    If Address <> 255 Then
    Command = Command And &B01111111
    Cls
    Lcd "Adr: " ; Address
    Lowerline
    Lcd "Com: " ; Command
    End If
    
    Loop
    End
    
    
  • #9 9057310
    nouki
    Poziom 25  
    Nie liczyłem aż na taką odpowiedz czyli gotowca ale nie będę ......
    Dzięki.

    p.s po przejściu pełnego cyklu zobacz co się dzieje :)
  • #10 9057357
    piotrva
    VIP Zasłużony dla elektroda
    Co rozumiesz jako pełny cykl?
    Mnie doszło do adresu 2 i wyłączyłem;-)
  • #11 9057403
    nouki
    Poziom 25  
    pełen cykl dochodzi do 31- kończy na 31 i 127, nic sie nie zmienia przez jakiś czas) zaczynając od nowa commandy idą do 64 staje ( nic się nie zmienia bo nadajnik wysyła do 127) i przeskakuje na adres następny i comandy znów do 63 i .....

    mam jeszcze pytanie co do rc6 - 256 rozkazów
    polecenie wysyłania RC6SEND a odbieranie? jest jakaś gotowa procedura pod bascoma?

    Szukanie nie wiele daje.
  • #12 9057684
    piotrva
    VIP Zasłużony dla elektroda
    Gotowej nie widziałem... Trzeba by napisać ręcznie a to trochę zabawy jest...
    Lepiej działać z rc5 jeśli pod bascom.
    Co do "cyklu" to program nie ma zabezpieczenia żeby nie wyjść poza zakres 32 adresów dostępnych w rc5 i może działać dziwnie (mówię o nadajniku)
    Co do rc5 to nietypowo używając adresu można mieć 128*32 komendy lub np 2 adresy i 128*16 komend itd... Oczywiście wszystko trzeba ręcznie zaimplementować podobnie jak użycie rc5ext.
  • #13 9139542
    nouki
    Poziom 25  
    Narodziło się jeszcze jedno pytanie. ile czasu zajmuje wysłanie komendy Rc5
    pod bascomem bo oscyloskop podaje mi inna wartość niż w opisach do rc5.
  • #14 9140171
    piotrva
    VIP Zasłużony dla elektroda
    hmm, nigdy tego nie mierzyłem
    na pewno wszystko zgodne ze standardami, bo kiedyś sterowałem spod bascoma telewizorem i działało...
    a jakie masz czasu zmierzone i "katalogowe"??
REKLAMA