- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 8 von 8

Thema: Kompilieren mit AVRStudio4

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.03.2010
    Beiträge
    28

    Kompilieren mit AVRStudio4

    Anzeige

    E-Bike
    Hallo bin gerade dabei die Beispielprogramme, für die M32 durchzumachen.
    Jetzt will ich das RP6Control_09_Move etwas abändern, dazu kopiere ich mir den Quellcode in AVR-Studio4 rein.
    Bevor ich etwas ändere versuche ich erst das Originalprogramm zu kompilieren, dass funktioniert bei diesem leider nicht.

    Code:
    /* 
     * ****************************************************************************
     * RP6 ROBOT SYSTEM - RP6 CONTROL M32 Examples
     * ****************************************************************************
     * Example: I2C Master 9 - Lib2
     * Author(s): Dominik S. Herwald
     * ****************************************************************************
     * Description:
     * Now we add some movement functions to the new Library. We use them
     * to make the Robot move just like in one of the RP6Base Example programs.
     * It moves about 30cm forwards, turns about 180°, moves 30cm, turns 180°
     * and so on. 
     *
     * ############################################################################
     * #+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+
     * 
     * ATTENTION: THE ROBOT MOVES AROUND IN THIS EXAMPLE! PLEASE PROVIDE ABOUT
     * 2m x 2m OR MORE FREE SPACE FOR THE ROBOT! 
     *
     * >>> DO NOT FORGET TO REMOVE THE FLAT CABLE CONNECTION TO THE USB INTERFACE
     * BEFORE YOU START THIS PROGRAM BY PRESSING THE START BUTTON ON THE ROBOT!
     *
     * #+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+
     * ############################################################################
     * ****************************************************************************
     */
    
    /*****************************************************************************/
    // Includes:
    
    #include "RP6ControlLib.h" 		// The RP6 Control Library. 
    								// Always needs to be included!
    
    #include "RP6I2CmasterTWI.h"	// I2C Master Library
    
    
    /*****************************************************************************/
    /*****************************************************************************/
    // Include our new "RP6 Control I2C Master library":
    
    #include "RP6Control_I2CMasterLib.h"
    
    /*****************************************************************************/
    
    /**
     * Timed Watchdog display only - the other heartbeat function
     * does not work in this example as we use blocked moving functions here.
     */
    void watchDogRequest(void)
    {
    	static uint8_t heartbeat2 = false;
    	if(heartbeat2)
    	{
    		clearPosLCD(0, 14, 1);
    		heartbeat2 = false;
    	}
    	else
    	{
    		setCursorPosLCD(0, 14);
    		writeStringLCD_P("#"); 
    		heartbeat2 = true;
    	}
    }
    
    /*****************************************************************************/
    // I2C Requests: 
    
    /**
     * The I2C_requestedDataReady Event Handler
     */
    void I2C_requestedDataReady(uint8_t dataRequestID)
    {
    	checkRP6Status(dataRequestID);
    }
    
    /*****************************************************************************/
    // I2C Error handler
    
    /**
     * This function gets called automatically if there was an I2C Error like
     * the slave sent a "not acknowledge" (NACK, error codes e.g. 0x20 or 0x30).
     */
    void I2C_transmissionError(uint8_t errorState)
    {
    	writeString_P("\nI2C ERROR - TWI STATE: 0x");
    	writeInteger(errorState, HEX);
    	writeChar('\n');
    }
    
    /*****************************************************************************/
    // Main function - The program starts here:
    
    int main(void)
    {
    	initRP6Control();  
    	initLCD();
        
    	writeString_P("\n\nRP6 CONTROL M32 I2C Master Example Program!\n"); 
        writeString_P("\nMoving...\n"); 
    
    	// ---------------------------------------
    	WDT_setRequestHandler(watchDogRequest); 
    	
    	// ---------------------------------------
    	// Init TWI Interface:
    	I2CTWI_initMaster(100);  
    	I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady);
    	I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);
    
    	sound(180,80,25);
    	sound(220,80,25);
    
    	setLEDs(0b1111);
    
    	showScreenLCD("################", "################");
    	mSleep(500);
    	showScreenLCD("I2C-Master", "Movement...");
    	mSleep(1000);
    	setLEDs(0b0000);
    	
    	// ---------------------------------------
    	I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_ACS_POWER, ACS_PWR_MED);
    	I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
    	I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
    
    	while(true) 
    	{ 
    		setLEDs(0b1001); 
    		showScreenLCD("MOVE", "FWD");
    		move(60, FWD, DIST_MM(300), BLOCKING);
    		setLEDs(0b1000); 
    		showScreenLCD("ROTATE", "LEFT");
    		rotate(50, LEFT, 180, BLOCKING);
    		setLEDs(0b1001); 
    		showScreenLCD("MOVE", "FWD");
    		move(60, FWD, DIST_MM(300), BLOCKING);
    		setLEDs(0b0001); 
    		showScreenLCD("ROTATE", "RIGHT");
    		rotate(50, RIGHT, 180, BLOCKING);
    	}
    	return 0;
    }
    
    #
    Da kommen diese Fehlermeldungen:
    ../Move_M32_29_12_2010.c: In function 'main':
    ../Move_M32_29_12_2010.c:130: warning: implicit declaration of function 'move'
    ../Move_M32_29_12_2010.c:130: error: 'BLOCKING' undeclared (first use in this function)
    ../Move_M32_29_12_2010.c:130: error: (Each undeclared identifier is reported only once
    ../Move_M32_29_12_2010.c:130: error: for each function it appears in.)
    ../Move_M32_29_12_2010.c:133: warning: implicit declaration of function 'rotate'
    make: *** [Move_M32_29_12_2010.o] Error 1
    Build failed with 3 errors and 2 warnings...

    Als Source Files habe ich die:

    RP6ControlLib.c
    RP6UART.c
    RP6Control_I2CMasterLib.c
    RP6I2CmasterTWI.c

    und als Header Files die:

    RP6ControlLib.h
    RP6UART.h
    RP6Control_I2CMasterLib.h
    RP6I2CmasterTWI.h

    eingebunden.

    Kann mir jemand helfen?

    Danke
    roy-sam

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    17.07.2010
    Beiträge
    45
    Ich kann dir hierzu nicht helfen, aber kann dir sagen das ich zum schreiben "Programmers Notepad" benutze und da alles ganz gut läuft.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    27.03.2010
    Beiträge
    28
    Hallo Dasive,
    das ist ja nett gemeint, aber ich muss in der Schule AVR-Studio verwenden, deswegen benötige ich hilfe zum AVR-Studio.

    Gruß
    roy-sam

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    11.12.2010
    Beiträge
    147
    Hast du die Beispielprogramme von der CD oder aus dem Internet ?
    Denn die auf der CD scheinen Teils einen Fehler zu haben ( wie vor einigen Stunden schon hier im Forum berichtet wurde).
    Mein RP6 YouTube Kanal
    Abonnieren & Kommentieren

    http://www.youtube.com/user/MyRP6

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    27.03.2010
    Beiträge
    28
    Sind von der Homepage

  6. #6
    shedepe
    Gast
    Dann stell noch mal sicher dass du die Headerfiles und die Codefiles richtig hinzugefügt hast. Die sollten dann auf der Linken seite unter Source Files bzw. Header Files erscheinen.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.03.2010
    Beiträge
    28
    Hallo shedepe,
    in meinem ersten Post habe ich das ja erwähnt.
    Die sind so drin wie ich es geschrieben habe.
    Gruß
    roy-sam

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    27.03.2010
    Beiträge
    28
    Keiner eine Lösung???

Berechtigungen

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

LiFePO4 Speicher Test