Hallo Leute,

ich habe mal wieder ein ATMEL AVR Problem. Ich nutze einen ATmega32 @16MHz. Ich habe versucht den RC5 C-Code zum laufen zu

bringen. Ich habe den Code von diesem Artikel http://www.rn-wissen.de/index.php/RC...%C3%BCr_ATMega. Leider bekomme

ich ihn nicht zum laufen. Es wird zwar ein Interrupt erkannt, aber die Bits der addr und code Variable sind immer Null egal

welche Taste ich auf meiner Fernbedienung drücke. Ich habe auch schon mehrere Fernbedienungen versucht, doch leider ohne

Ergbenis. Ich weiß das mit den Bits, weil ich die Variable über den UART und RS232 an den PC übertragen lasse. An dem RC5

Code habe ich nichts geändert.
Ich verwende das Pollin Evalution Board und das Addon Board. Auf dem Addon Board ist der TSOP 1136. Ich denke es könnten zwei

Fehlerquellen sein. Erstens in dem Artikel steht nichts von meinem IR Empfänger drin und zweitens meine verwendeten

Fernbedienungen verwenden nicht den RC5 Standart. Ich habe auch schon eine Phillips Fernbedienung verwenden, aber da kommt

dann gar kein Interrupt an.
An was kann das liegen? Sollte ich mal den Empfänger tauschen und einen von dem Artikel verwenden?

Vielen dank schon mal fürs lesen. Vielleicht hat jemand schon den Code zum laufen gebracht und könnte mir vielleicht ein

bisschen helfen. Oder sieht hier noch eine Fehlerquelle.

So und hier mein verwendeter Code:
Code:
#include "rc5.h"
#include "uart.h"
#include <avr/io.h>
#include <avr/interrupt.h>

int main()
{
    //uint8_t code = 0;
    //uint8_t addr = 0;
    
    /*UART INIT*/
    uart_init();

    /* der ensprechende INT-Port muss INPUT sein */
    /* RC5 initialisieren, alle Adressen zulassen */
    rc5_init (RC5_ALL);

    /* Interrupts zulassen */
    sei();

    while(1)
    {
        /* Gibt's was Neues? */
           if (-1 == rc5.flip)
           {
              /* Nein, dann mach irgendwas (oder nix) */
           }
           else
           {
              /* Ja, dann rc5.code merken und evtl. rc5.addr */
              /* falls man die braucht und nicht sowieso schon kennt */
              /*code = rc5.code;
              addr = rc5.addr;*/

            uint8_t code = rc5.code;
            uint8_t addr = rc5.addr;


            //FB Code senden!
            uart_putc(code);
            uart_putc(' ');
            uart_putc(addr);
              /* und auf naechstes Zeichen warten */
              rc5.flip = -1;
      
          /* code (evtl. addr) auswerten */
           }
    }
    return 0;
}
Wisler