-         
Ergebnis 1 bis 7 von 7

Thema: Nibo1 RC5-Code

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    64
    Beiträge
    696

    Nibo1 RC5-Code

    Anzeige

    Ich reagiere auf Code der Fernbedienung. Das funktioniert auch gut.

    Wenn ich mit
    Code:
    uint8_t getTaste(void)
    {
        uint8_t FB_TASTE = 0;
        
        irco_update();
        
        gfx_move(0,0);
        gfx_print_text("RC5: ");
        
        uint8_t REMOTE_CODE = LOBYTE(irco_rc5_cmd);
        gfx_move(30,0);
        print_hex(HIBYTE(irco_rc5_cmd)); //erster Druck: 0x38  zweiter Druck: 0x30 (für zweistellige Zahlen)
        print_hex(REMOTE_CODE);
    
    
        // Fernbedienung Einstellung: TV1, 023
        switch(REMOTE_CODE)
        {
            case 0x01: //1 (Ziffernblock der Fernbedienung)
            FB_TASTE = 1;
            break;
            
            case 0x02: //2
            FB_TASTE = 2;
            break;
    
    
            case 0x03: //3
            FB_TASTE = 3;
            break;
            
            case 0x04: //4
            FB_TASTE = 4;
            break;
            
            case 0x05: //5
            FB_TASTE = 5;
            break;
            
            case 0x06: //6
            FB_TASTE = 6;
            break;
            
            case 0x07: //7
            FB_TASTE = 7;
            break;
            
            case 0x08: //8
            FB_TASTE = 8;
            break;
            
            case 0x09: //9
            FB_TASTE = 9;
            break;
            
            case 0x00: //0
            FB_TASTE = 0;
            break;
            
            case 0x20: //CH+ (Sonstige Tasten der Fernbedienung)
            FB_TASTE = 10;
            break;
            
            case 0x21: //CH-
            FB_TASTE = 11;
            break;
            
            case 0x10: //VOL+
            FB_TASTE = 12;
            break;
            
            case 0x11: //VOL-
            FB_TASTE = 13;
            break;
            
            case 0x0d: //LOUDSPEAKER OFF (green)
            FB_TASTE = 14;
            break;
            
            case 0x0c: //ON/OFF (red)
            FB_TASTE = 15;
            break;
            
            case 0x29: //PAUSE
            FB_TASTE = 16;
            break;
            
            case 0x36: //STOP
            FB_TASTE = 17;
            break;
            
            case 0x32: //RECORD (red point)
            FB_TASTE = 18;
            break;
            
            case 0x3c: //REWIND (red)
            FB_TASTE = 19;
            break;
            
            case 0x3f: //PLAY (yellow)
            FB_TASTE = 20;
            break;
            
            case 0x2b: //FAST-FORWARD (blue)
            FB_TASTE = 21;
            break;
            
            case 0x0b: //OK (green)
            FB_TASTE = 22;
            break;
            
            case 0x37: //SCREEN2
            FB_TASTE = 23;
            break;
            
            case 0x34: //SCREEN4
            FB_TASTE = 24;
            break;
        }
                
        return FB_TASTE;
    }
    und
    Code:
    // Fernbedienung abfragen
            FB_TASTE = getTaste();
            textout(20,56,"  ",0); 
            gfx_move(20,56);
            print_hex(FB_TASTE);
            
    // Reaktion auf Taste        
            switch(FB_TASTE)
            {
            case 12: //VOL+
                SPEEDFACTOR++;
                if(SPEEDFACTOR>MAXSPEEDFACTOR)
                    SPEEDFACTOR = MAXSPEEDFACTOR;                
            break;
            case 13: //VOL-
                if(SPEEDFACTOR>0)
                    SPEEDFACTOR--;                            
            break;
            }
    in einer Endlos-while(1)-Schleife auf einen Tastendruck reagiere, wie kann ich das Signal/den RC5-Code auf einen Wert ohne Funktion zurücksetzen, damit es nicht bis zum Extremwert durchläuft? Geht das überhaupt?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.992
    Blog-Einträge
    16
    Indem Du z.B. die WHILE-Schleife mit einer Bedingung verknüpfst, die Du in dem Programmcode änderst.

    Code:
    while(status == 0){
        i++;
       if (i==147) status =1;
    }

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    64
    Beiträge
    696
    Danke für den Tipp! Gibt es auch die Möglichkeit, die letzte empfangene RC5-Nachricht nach Verarbeitung dauerhaft(!) bis zum nächsten Tastendruck auf die Fernbedienung auf einen nicht-wirkenden Wert umzusetzen?

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.194
    .. Gibt es .. die Möglichkeit, die letzte empfangene RC5-Nachricht nach Verarbeitung dauerhaft(!) bis zum nächsten Tastendruck ..
    Hallo ehenkes.

    Meine letzten nibozeiten sind schon längst vorbei. Aber es dürfte ja kein sooo großer Unterschied zu andern Verfahren sein: ich sichere mir nach der Dekodierung zwei Bytes:
    Code:
    ...
        RCDCO2      = RCDECO;       // dekodiertes Befehlsbyte sichern
        RCTold      = RCTGGB;       // Toggelbit old für nächstes Lesen sichern
    ...
    und kann damit mehrere, für mich sinnvolle Operationen durchführen. Einmal das Doppeln der Tasten verhindern - genau dafür ist ja das Toggelbit gedacht. Ausserdem habe ich ne Taste dafür vorgesehen, den letzten Befehl zu wiederholen - dazu dient der Speicher "RCDCO2".

    Ich glaube das geht in die Richtung die Du suchst!?
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    64
    Beiträge
    696
    Ja, zweite Ebene schaffen ist genau richtig. Danke!
    Was kam bei dir nach dem Nibo? Ich Suche eigentlich einen etwas raffinierteren und moderneren Hobby-Roboter.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.194
    .. Danke! Was kam bei dir nach dem Nibo? Ich Suche eigentlich einen etwas raffinierteren und moderneren Hobby-Roboter.
    Gern geschehen.

    Ein raffinierteres Projekt. Hmmm, na ja, bei mir war der Nibo ja kein "richtiger" NIBO, war die Nibobee, die hatte ich als Testobjekt bekommen. Das war also mehr eine Pflicht(übung), die aber recht viel Spass machte und manche Feinheit bekam.

    Ich bin aber mehr für Kür - und mein WALL R kam sozusagen nach dem Nibobee. Der war schon ne andere Herausforderung aber eigentlich (nur) ne Zwischenstation nach Dottie auf dem Weg zum MiniD0. Und ne richtige Herausforderung war natürlich archie - so von sec10 bis sec15 oder hier bei den ersten Fingerübungen.

    Na jedenfalls viel Erfolg bei Deinen/-m weiteren Projekt(en).
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    64
    Beiträge
    696
    Danke für die Anregungen! Gefällt mir gut, wobei ich lieber etwas für den Swimming-Pool hätte (allerdings Wasserproblematik). Sind das alles 8-bit-µC?

    Was findest du bei den käuflichen Systemen interessant? Nibo2 hat offenbar keinen modernen Nachfolger gefunden.

Ähnliche Themen

  1. PHP Code: Buch, Frameworks um in Zukunft saubereren Code zu schreiben
    Von Thor_ im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 21.11.2014, 17:25
  2. Code-Schloss mit Tastatur, LCD und Logger. Code-Beispiel
    Von Stray_Cat im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 2
    Letzter Beitrag: 05.06.2009, 10:31
  3. Bascom Code in GCC Code umschreiben
    Von Martin. im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 13.07.2008, 19:14
  4. Lib 2.71 und LCD Code
    Von pinsel120866 im Forum Asuro
    Antworten: 7
    Letzter Beitrag: 08.02.2008, 21:43
  5. asm-code-einblick vom bascom-code
    Von roboterheld im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 16.10.2007, 06:39

Berechtigungen

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