Um schnell mal in der Ansteuerung Fortschritte zu machen habe ich mir gedacht den Servoarm über IR zu bedienen.
Das ist mein Code:
Aber er scheint Fehler zu haben ,da ich ine Aussage wie diese erhalte.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; }
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







Zitieren

Lesezeichen