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