Hi so habe jetzt hinbekommen das ich RC5 empfangen kann und die Servos ansteuern.
(Noch laufen beide Servos synchron... aber das ist der kleinste Teil der Arbeit)
Gut jedoch läuft alles seeehr ruckelig... Außerdem erkennt er nicht einen jeden Tastendruck und manchmal bleiben die Servos einige Sekunden lang stehen ohne sich zu bewegen ....
Code:
Code:
#include "RP6BaseServoLib.h"
uint16_t pos = 0;
void receiveRC5Data(RC5data_t rc5data)
{
// Output the received data:
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 17:pos = pos-5;
break;
case 16:pos = pos+5;
break;
}
}
int main(void)
{
initRobotBase();
writeString_P("\n\n _______________________\n");
writeString_P(" \\| RP6 ROBOT SYSTEM |/\n");
writeString_P(" \\_-_-_-_-_-_-_-_-_-_/\n\n");
writeString_P("################\n");
writeString_P("<<RP6 Base>>\n");
writeString_P(" Servo - Test 1 \n");
writeString_P(" Version 1.20 \n");
writeString_P("################\n\n");
mSleep(2500);
setLEDs(0b111111);
mSleep(500);
powerON();
// Set the RC5 Receive Handler:
IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
initSERVO(SERVO1 | SERVO2);
startStopwatch2();
while(true)
{
if (getStopwatch2() > 20) {
startSERVO();
servo1_position = pos;
servo2_position = pos;
setStopwatch2(0);
}
task_SERVO();
task_RP6System();stopSERVO();
}
return 0;
}
// THX 2 Dirk
// ------------------------------------------------------------------------------------------
Ideen? Verbesserungsvorschläge?
Gruß Biohazard
Lesezeichen