Das Programm ist das von oben:

Code:
/*******************************************************************************
*
* File Name:   IRDemo.c
* Project  :   Demo
*
* Description: This file contains IRDemo features
*
* Ver.     Date         Author           Comments
* -------  ----------   --------------   ------------------------------
* 1.00      14.08.2003   Jan Grewe       build
* 2.00     22.10.2003   Jan Grewe        angepasst auf asuro.c Ver.2.10
*
* Copyright (c) 2003 DLR Robotics & Mechatronics
*****************************************************************************/
/*!
  /file    IRDemo.c
  /brief    Routinen fuer die Dekodierung von RC5-Fernbedienungs-Codes
  /author    Benjamin Benz (bbe@heise.de), m.a.r.v.i.n

  /version      V001 - 14.08.2003 - Jan Grewe
                initial build
      V002 - 22.10.2003 - Jan Grewe
                angepasst auf asuro.c Ver.2.10
                V003 - 11.02.2007 - m.a.r.v.i.n
      c't-Bot RC5 Code portiert fuer den ASURO
*/
/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   any later version.                                                    *
 ***************************************************************************/

#include "asuro.h"
#include "rc5.h"
#include <stdlib.h>

#define DIARWD   0x1008
#define DIAFWD   0x1002
#define DIALEFT  0x1004
#define DIARIGHT 0x1006
#define DIASTOP  0x1029

#define TUNERRWD   0x1021
#define TUNERFWD   0x1020
#define TUNERLEFT  0x1011
#define TUNERRIGHT 0x1010
#define TUNERSTOP  0x1025

#define OFFSET   0x3F
#define STEP   5

int speedLeft,speedRight;

void IRFwd(void)
{
  speedRight += STEP;
  speedLeft  += STEP;
  if (speedLeft < 0 && speedLeft >= -OFFSET) speedLeft = 1;
  if (speedRight < 0 && speedRight >= -OFFSET) speedRight = 1;
  FrontLED(ON);
  BackLED(OFF,OFF);
}

void IRRwd(void)
{
  speedRight -= STEP;
  speedLeft  -= STEP;
  if (speedRight > 0 && speedRight <= OFFSET)  speedRight = -1;
  if (speedLeft > 0 && speedLeft <= OFFSET)  speedLeft = -1;
  FrontLED(OFF);
  BackLED(ON,ON);
}

void IRLeft (void)
{
  speedLeft  -= STEP;
  if (speedLeft > 0 && speedLeft <= OFFSET) speedLeft = -1;
  speedRight += STEP;
  if (speedRight < 0 && speedRight >= -OFFSET) speedRight = 1;
  FrontLED(OFF);
  BackLED(ON,OFF);
}

void IRRight (void)
{
  speedLeft  += STEP;
  if (speedLeft < 0 && speedLeft >= -OFFSET) speedLeft = 1;
  speedRight -= STEP;
  if (speedRight > 0 && speedRight <= OFFSET) speedRight = -1;
  FrontLED(OFF);
  BackLED(OFF,ON);
}


void IRStop(void)
{
  speedRight = speedLeft = 0;
  FrontLED(OFF);
  BackLED(OFF,OFF);
}

int main(void)
{

  static unsigned int cmd;
  unsigned char leftDir = FWD, rightDir = FWD;
  char text[7];

  Init();
  InitRC5();

  SerPrint("RC5 Test\r\n");
  while (1)
  {
    cmd = ReadRC5();
    if (cmd)
    {
      cmd &= RC5_MASK;
      itoa(cmd, text, 16);
      SerPrint(text);
      SerPrint("\r\n");

      switch (cmd)
      {
      case TUNERRWD :
      case DIARWD :
        SerPrint("rwd\r\n");
        IRRwd();
        break;
      case TUNERFWD :
      case DIAFWD :
        SerPrint("fwd\r\n");
        IRFwd();
        break;
      case TUNERLEFT :
      case DIALEFT:
        SerPrint("lft\r\n");
        IRLeft();
        break;
      case TUNERRIGHT :
      case DIARIGHT:
        SerPrint("rgt\r\n");
        IRRight();
        break;
      case TUNERSTOP :
      case DIASTOP :
        SerPrint("stp\r\n");
        IRStop();
        break;
      }
    }
    if (speedLeft > 0 && speedLeft <  OFFSET) speedLeft += OFFSET;
    if (speedLeft < 0 && speedLeft > -OFFSET) speedLeft -= OFFSET;
    if (speedRight > 0 && speedRight <  OFFSET) speedRight += OFFSET;
    if (speedRight < 0 && speedRight > -OFFSET) speedRight -= OFFSET;

    leftDir = rightDir = FWD;
    if (speedLeft < 0)  leftDir = RWD;
    if (speedRight < 0) rightDir = RWD;

    if (speedLeft >   255) speedLeft  =  255;
    if (speedLeft <  -255) speedLeft  = -255;
    if (speedRight >  255) speedRight =  255;
    if (speedRight < -255) speedRight = -255;

    MotorDir(leftDir,rightDir);
    MotorSpeed(abs(speedLeft),abs(speedRight));
    Msleep(100);
  }
  return 0;
}
Das Hyperterminal hab ich parallel am laufen gehabt, da ist immer was gekommen.

Ich probier mal das Programm von dir, danke. Ich geb dann wieder bescheid.

Das Ding ist jetzt auch, ich hab die Fernbedienung mit der es funktioniert hat, umgetauscht gegen eine andere, da es mit der alten nicht mehr funktionierte.
Gerade versuche ich es mit 2 neuen und unserer Universal-Fernbedienung für unseren Fernseher. (2x Tevion, 1x Philips - alles Universal)
Daran kann es ja nicht wirklich liegen, da auch die alte nicht ging und von den neuen müsste er ja auch auf irgendeine eine Reaktion zeigen!

Gruß
Seuche