Datenempfang von Ruwido Merlin-Tastatur mit IRMP

Gast #3159679
Lesenswert?
• ▲
▼
Hallo,

ich bin noch ziemlich neu auf auf dem Gebiet, aber versuche gerade die 
Ruwido-Merlin Tastatur mit IRMP zu dekodieren und über Uart die Tasten 
auszugeben. Habe einen ATMEGA32 und schreibe das Programm mit dem 
Atmel-Studio 6. Als Empfänger habe ich einen TSOP31256 und einen 
externen 16Mhz Kristall am Controller.
Allerdings bekomme ich es nicht hin die gedrückten Tasten zu dekodieren. 
Der Empfänger bekommt aufjedenfall ein Signal, da über die 
Callback-Funktion im IRMP eine Led angesteuert wird. Auch das Senden von 
Strings oder Zahlen per UART an den PC funktioniert.
Mit folgendem Code versuche ich die gedrückten Tasten, bzw. erstmal 
deren Codes zu senden:
1
 int
2
main (void)
3
{
4
    IRMP_DATA irmp_data;
5

6
    irmp_init();                                                            // initialize irmp
7
    timer1_init();                                                          // initialize timer1
8
  uart_init();
9
  char s[16];
10
  LED_DDR |= (1 << LED_PIN);         // LED pin to output
11
  LED_PORT |= (1 << LED_PIN);        // switch LED off (active low)
12
  
13
  irmp_set_callback_ptr (led_callback);
14
  uart_puts("Start");
15
  
16
    sei ();                                                                 // enable interrupts
17

18
    for (;;)
19
    {
20
        if (irmp_get_data (&irmp_data))
21
        {
22
      
23
      
24
      if (irmp_data.protocol == IRMP_RUWIDO_PROTOCOL )                   // Ruwido-Protokoll
25
      {
26
        
27
        //LED_PORT &= ~(1 << LED_PIN);
28
        
29
        itoa( irmp_data.command, s, 10 ); // 10 fuer radix -> Dezimalsystem
30
        uart_puts( s );
31
        
32
      }
33
      
34
        }
35
    }
36
}

Das Ganze ist eigentlich nicht viel mehr als das Standardbeispiel. An 
der irmpconfig.h habe ich nur das Ruwido-Protokoll aktiviert. F_CPU 
steht auf 16000000UL.
Es gibt ja auch noch die Einstellung IRMP_EXT_LOGGING, die wie ich das 
verstanden habe, wenn man sie auf 1 setzt Nullen und Einsen entsprechend 
des Tastencodes per UART verschickt? Davon kommt bei mir leider nichs 
an.
Die Led aus der Callbackfunktion flackert direkt bei jedem Tastendruck, 
mein Sendeversuch aus dem Code oben reagiert nur ab und zu auf eine 
Taste, allerdings mit scheinbar beliebigem Wert.
Hat jemand eine Idee woran das liegen könnte? Bin wie gesagt noch nicht 
lange dabei, falls noch wichtige Informationen fehlen, bitte melden!

Vielen Dank und schöne Grüße,
Quetzalcoatl1906

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.