PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fehler in einfachem fahrprogramm und ich finde ihn nicht :(



carlitoco
07.01.2008, 10:03
In dem Programm stimmt noch was nicht, make all gibt mir folgendes aus:

RP6Base_hinundher.c: In function 'Batt':
RP6Base_hinundher.c:33: error: expected '(' before '{' token
RP6Base_hinundher.c:80: warning: 'main' is normally a non-static function
RP6Base_hinundher.c:92:3: warning: no newline at end of file
RP6Base_hinundher.c:92: error: expected declaration or statement at end of input
make: *** [RP6Base_hinundher.o] Fehler 1



// Cruise Behaviour:

#include "RP6RobotBaseLib.h"

#define IDLE 0

#define TURN_SPEED 50
#define MOVE_SPEED 100

#define MOVE_FORWARDS 1



void behaviour_cruise(void)

{
uint8_t turn_direction = LEFT;

{
setLEDs(0b100100);
move(MOVE_SPEED, FWD, DIST_MM(2000), BLOCKING);

rotate(TURN_SPEED, turn_direction, 102, BLOCKING);

move(MOVE_SPEED, FWD, DIST_MM(100), BLOCKING);
rotate(TURN_SPEED, turn_direction, 102, BLOCKING);
move(MOVE_SPEED, FWD, DIST_MM(2000), BLOCKING);

rotate(TURN_SPEED, RIGHT, 102, BLOCKING);
move(MOVE_SPEED, FWD, DIST_MM(100), BLOCKING);
rotate(TURN_SPEED, RIGHT, 102, BLOCKING);

}

// akku_load:

void Batt(void)
{
uint16_t ubat
setStopwatch1(400);

{
while
{
startStopwatch1();
if(getStopwatch1() > 300)
{

writeString_P("\nADC Akku: Voll");
writeInteger(adcBat, DEC);
writeChar('\n');
if(adcBat > 900)
{
setLEDs(0b001001);
writeString_P("\nADC Akku: >9V");
}
else if(adcBat < 901 && adcBat > 800)
{
writeString_P("\nADC Akku: >8V");
statusLEDs.LED4 = !statusLEDs.LED4;
statusLEDs.LED1 = !statusLEDs.LED1;
updateStatusLEDs();
}

else if(adcBat < 801 && adcBat > 700)
{
setLEDs(0b000001);
writeString_P("\nADC Akku: >7V");
}
else if(adcBat < 701 && adcBat > 590)
{
statusLEDs.LED1 = !statusLEDs.LED1;
updateStatusLEDs();
writeString_P("\nADC Akku: Leer");
}
else if(adcBat < 591 && adcBat > 500)
{
writeString_P("\nADC Akku: Laden!");
powerOFF();
}

setStopwatch1(0);
}


}


int main (void)

{

initRobotBase();

startStopwatch1();
powerON();
while(true)

{
task_ADC();
task_RP6System();
Batt();
behaviour_cruise();

}


return 0;
}

ich bin dankbar für jede hilfe MfG carlitoco

blenderkid
07.01.2008, 12:36
bei viod behaviour_cruise fehlt dir am Ende "}".
Du machst am Anfang die erste Klammer auf und danach noch eine.
Verstehe nicht was die zweite Klammer auf "{" soll. Da ist kein "if", "while" oder so.

PS: Du machst komische Einrückungen.

MfG blenderkid

blenderkid
07.01.2008, 12:42
Bei Batt hast du auch 2mal Klammer zu vergessen.

carlitoco
08.01.2008, 17:02
closed da ausversehen doppeld!

MfG carlitoco

AlKI
08.01.2008, 19:03
...
void Batt(void)
{
uint16_t ubat // Was ist das? Eine Anweisung? Oder 2? Oder sonstwas?
setStopwatch1(400);

{ ...


da fehlt doch irgendwie ein (oder mehrere) Hochkommatas ( ; )



RP6Base_hinundher.c:80: warning: 'main' is normally a non-static function
RP6Base_hinundher.c:92:3: warning: no newline at end of file


Ersteres lässt sich lößen, wenn du
void main(void) // statt "int main(void)
nimmst.
das mit dem "...no new line..." macht nichts. das kommt bei mir auch dauernd, stört aber nicht, einfach übersehen.