Um schnell mal in der Ansteuerung Fortschritte zu machen habe ich mir gedacht den Servoarm über IR zu bedienen.
Das ist mein 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 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");
int arm
{
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");
int arm
{
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;
}
Aber er scheint Fehler zu haben ,da ich ine Aussage wie diese erhalte.
Code:
Compiling: RP6Base_tvarm.c
avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=RP6Base_tvarm.lst -I../../../RP6Lib/ -I../../../RP6Lib//RP6base -I../../../RP6Lib//RP6common -std=gnu99 -MD -MP -MF .dep/RP6Base_tvarm.o.d RP6Base_tvarm.c -o RP6Base_tvarm.o
RP6Base_tvarm.c: In function 'receiveRC5Data':
RP6Base_tvarm.c:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
RP6Base_tvarm.c:46: warning: implicit declaration of function 'servo'
RP6Base_tvarm.c:65: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'i'
RP6Base_tvarm.c:85: error: break statement not within loop or switch
RP6Base_tvarm.c: At top level:
RP6Base_tvarm.c:88: error: expected identifier or '(' before '}' token
make: *** [RP6Base_tvarm.o] Fehler 1
Lesezeichen