- Labornetzteil AliExpress         
Ergebnis 1 bis 5 von 5

Thema: fehler in einfachem fahrprogramm und ich finde ihn nicht :(

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    40
    Beiträge
    211

    fehler in einfachem fahrprogramm und ich finde ihn nicht :(

    Anzeige

    E-Bike
    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


    Code:
    // 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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    32
    Beiträge
    177
    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

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    32
    Beiträge
    177
    Bei Batt hast du auch 2mal Klammer zu vergessen.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    40
    Beiträge
    211
    closed da ausversehen doppeld!

    MfG carlitoco

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    Code:
    ...
    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
    Code:
     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.
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test