So vielleicht, ich hab's nicht getestet:
Code:
// RP6 steuert ein Servo an der SL1-LED mit Sleep()
#include "RP6RobotBaseLib.h"
#define RC_PROMO8
#ifdef RC_PROMO8
#define RC5_KEY_SERVO_RIGHT 46
#define RC5_KEY_SERVO_LEFT 60
#endif
#define servorechts 10
#define servolinks 20
uint8_t servopos=15;
uint8_t stellzeit;
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');
if (rc5data.key_code == RC5_KEY_SERVO_RIGHT)
if(servopos > servorechts) // wenn nicht in Position
while(--servopos >= servorechts) // Position schrittweise annähern
for(stellzeit=0; stellzeit<5; stellzeit++) // Signal mehrmals senden
{
setLEDs(1);
sleep(servopos);
setLEDs(0);
sleep(200-servopos);
}
if (rc5data.key_code == RC5_KEY_SERVO_LEFT)
if(servopos < servolinks)
while(++servopos <= servolinks)
for(stellzeit=0; stellzeit<5; stellzeit++)
{
setLEDs(1);
sleep(servopos);
setLEDs(0);
sleep(200-servopos);
}
}
int main(void)
{
initRobotBase();
IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
powerON();
setLEDs(0);
while(true)
{
task_RP6System();
}
return 0;
}
gruß
Lesezeichen