Ziel soll es sein die Servos über die IR Fernbedienung zu steuern.
Es würde erstmal reichen wenn ich 2 Servos ansteuern könnte, das wäre eine gute Grundlage. Doch scheint das so noch nicht richtig zu sein.
hier nochmal der
neue code:
Code:
/*
* ****************************************************************************
* RP6 ROBOT SYSTEM - Base
* ****************************************************************************
Dieses Prorgamm wird gebaut um mienen Servoarm mit Hilfe einer IR-vernbedienung zu bedienen.
*************************************************
*/
#include "RP6RobotBaseLib.h"
uint8_t i, pause, servo_stellzeit, servo_delay;
//#define RC_EURO_SKY
#define RC_PROMO8
#ifdef RC_PROMO8 // RC Type: Conrad - Promo8
#define RC5_KEY_LEFT 21
#define RC5_KEY_RIGHT 22
#endif
void servo(uint8_t w0)
{}
void receiveRC5Data(RC5data_t rc5data)
{
writeString_P("Toggle Bit:");
writeChar(rc5data.toggle_bit + '0');
writeString_P(" | Device Address:");
writeInteger(rc5data.device, DEC);
writeString_P(" | Key Code:");
writeInteger(rc5data.key_code, DEC);
writeChar('\n');
switch(rc5data.key_code)
{
case RC5_KEY_LEFT: // Turn left:
writeString_P("LEFT\n");
{
i=0;
servo_stellzeit=16;
DDRA |= E_INT1; // E_INT1 als Ausgang
DDRC |= 3; // SCL und SDA als Ausgang
// 5 - 15 - 25 // Min - Mitte - Max
servo(15); // Grundstellung
while (1)
{
servo(17);
servo(18);
servo(19);
servo(20);
servo(21);
servo(22);
servo(23);
servo(24);
}
setLEDs(0b100000);
}
break;
case RC5_KEY_RIGHT: // Turn right:
writeString_P("RIGHT\n");
{
i=0;
servo_stellzeit=16;
DDRA |= E_INT1; // E_INT1 als Ausgang
DDRC |= 3; // SCL und SDA als Ausgang
// 5 - 15 - 25 // Min - Mitte - Max
servo(15); // Grundstellung
while (1)
{
servo(14);
servo(13);
servo(12);
servo(11);
servo(10);
servo(9);
servo(8);
servo(7);
servo(6);
}
setLEDs(0b000100);
}
break;
}
}
/*****************************************************************************/
int main(void)
{
initRobotBase();
setLEDs(0b111111);
writeChar('\n');
writeString_P("RP6 controlled by RC5 TV Remote\n");
writeString_P("___________________________\n");
mSleep(500);
setLEDs(0b000000);
powerON();
// Set the RC5 Receive Handler:
IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
return 0;
}
Gruss und danke für die Hilfe carlitoco
Lesezeichen