- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 4 von 4

Thema: RC5 auf LCD, kleines Verständisproblem

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272

    RC5 auf LCD, kleines Verständisproblem

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich habe das Beispielprogramm von Bascom bissel umgeändert damit es die RC5 Daten auf dem LCD Display ausgibt. funktioniert auch ganz gut.

    nur eine kleine Sache verstehe ich nicht.

    Ich gebe die Adresse und das Commando aus. Die Adresse ist jedesmal 0 und das Commando wechselt immer.

    z.B. erstes mal die taste drücken gibt er den Wert 139 aus. zweites mal die Taste drücken gibt er die 11 aus. nochmal drücken wieder die 139.

    warum das?? ich dachte die fernbedienung sendet auf jeder taste einen bestimmten code. nicht zwei.
    weil das ist schlecht wenn man was steuern will und muss immer zweimal drücken.

    hier mein beispielprgramm:

    Code:
    '******************************************
    '*       Atmega8 mit 8MHz Quarz           *
    '*       Grundlage RC5 Empfang            *
    '******************************************
    
    '*******************************************************************************
    
    $regfile "m8def.dat"
    $crystal = 8000000
    
    Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.4 , Db6 = Portd.5 , Db7 = Portd.6 , E = Portd.2 , Rs = Portd.0
    Config Lcdbus = 4
    Config Lcd = 16 * 2
    
    
    $lib "mcsbyte.lbx"
    
    Config Rc5 = Pinc.0
    
    '*******************************************************************************
    
    Enable Interrupts
    
    Dim Address As Byte , Command As Byte
    
    Cursor Off
    Cls
    Lcd "Waiting for RC5."
    
    Do
     Getrc5(address , Command)
    
     If Address = 0 Then
        Command = Command And &B10111111
        Locate 2 , 1
        Lcd "Adr:" ; Address ; "  Cmd:" ; Command ; "  "
     End If
    
    Loop
    End

    thx for help

    Arno

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Der RC5-Code arbeitet mit einem Togglebit.
    Dieses Bit wechselt nach jedem Tastendruck.
    Wenn du dauerhaft die 1 drücken würdest, und dein fernseher 999 Programmplätze hätte, wärst du schnell auf Programmplatz 111 weil das dauerhafte drücken von mehrmaligen drücken nicht unterschieden wurde.

    Kurz gesagt, das ist richtig so.
    Das löschen mit And &B10111111 funktionierte bei mir auch nicht.
    Ich habe einfach wenn Command größer als 127 war -127 gerechnet.
    Somit ergibt es immer den zugeordneten Wert für die Taste.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    das Togglebit ist auch eine Stelle weiter !
    mit &B01111111 sollte es gehen.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272
    ok, das habe ich jetzt verstanden.

    @linux_80: mit der kleinen anpassung funktioniert das jetzt super.

    habe gestern einfach ne kleine abfrage gemacht, wenn er über 100 war habe ich den wert nicht angenommen, war zwar doof weil ich meistens zwei mal drücken müsste, aber ging.

    nur deine kleine anpassung ist ja richtig super, der gleiche wert bei jedem tastendruck.

    supi und danke

    Arno

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad