Hi,
der 2. Code ist schon auf IR-Steuerung...
du musst nichts abändern, das ist schon fertig gewesen, also mein Vorschlag da...
nimm einfach mal den von mir oben geposteten Code
Code:
// RP6 steuert ein Servo an der SL1-LED mit Sleep()
#include "RP6RobotBaseLib.h" // Denn vollen Funktionsumfang der Lib bezahlen
#define RC_PROMO8
#ifdef RC_PROMO8
#define RC5_KEY_SERVO_RIGHT 46
#define RC5_KEY_SERVO_LEFT 60
#endif
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');
servoTaskRight();
servoTaskLeft();}
void servoTaskRight(RC5data_t rc5data)
{ if (rc5data.key_code == RC5_KEY_SERVO_RIGHT)
{setLEDs(1);
sleep(10);
setLEDs(0);
sleep(200-10);}
}
void servoTaskLeft(RC5data_t rc5data)
{ if (rc5data.key_code == RC5_KEY_SERVO_LEFT)
{setLEDs(1);
sleep(20);
setLEDs(0);
sleep(200-20);}
}
int main(void)
{
initRobotBase();
IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
powerON();
setLEDs(0);
while(true)
{
task_RP6System();
}
return 0;
}
genau den, den hab ich auch oben schon gepostet, das meinte ich mit 2. Code
es fehlt nur noch, dass du den Servos Zeit gibst, um sich neu zu stellen, ist aber ganz einfach mit while-Schleife zu lösen:
Code:
void servoTaskRight(...){
if(...){
while(stellzeit){
stellzeit--;
...
}
}
}
dann müsste alles passen...
MfG Pr0gm4n
Lesezeichen