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

Thema: RP6 -- Ein Motor rückwärts?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    hm.... der Compiler mekert das viele Variablen undeclared sind. Geht es auch so: moveAtSpeed3(speed_links, speed_rechts, dir_links, dir_rechts); ???

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    uint16_t distance, distance_left, distanceright;

    Hier fehlt der Unterstrich in distanceright.

    Bringt moveAtSpeed3() einen Vorteil? Es gibt doch nur vier Kombinationen.

    Code:
    // Richtung: 0 = Vorwärts, 1 = Rückwärts
    moveAtSpeed3(uint8_t desired_speed_left, uint8_t desired_speed_right, uint8_t dir_left, uint8_t dir_right)
    {
    	moveAtSpeed(desired_speed_left, desired_speed_right);
    	setMotorDir(uint8_t dir_left, uint8_t dir_right); // Kommentar in der Lib beachten!
    }
    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    das mit setMotorDir ist genau das was ich gesucht hab, aber:

    undefined reference to `setMotorDir'

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Möglicherweise wurde die Funktion rausgeschmissen:

    Code:
    /**
     * Sets the rotation direction of both motors.
     *
     * DO NOT CHANGE THE DIRECTION OF THE MOTORS WHILE THEY
     * ARE RUNNING AT HIGH SPEEDS!!! 
     * It will not instantly damage the motors/gears, but they will  
     * wear out much faster if you do it at high speeds - better wait 
     * until speed has slowed down - and change direction AFTER this.
     *
     * -------------------------------------------------------------
     * IT IS A BETTER IDEA NOT TO USE THIS FUNCTION AT ALL!
     * Use moveAtSpeed together with task_motionControl instead.
     * YOU CAN NOT USE setMotorPower AND setMotorDir WHEN YOU USE 
     * task_motionControl!  This will not work!
     * -------------------------------------------------------------
     *
     * task_motionControl also ensures that the direction is changed
     * slowly and only after the motors have stopped!
     *
     * Example:
     *          // DO NOT perform these commands directly after each
     *			// other in your programs - this is just a LIST of possible
     *			// combinations:
     *			setMotorDir(FWD,FWD); // Move forwards
     *			setMotorDir(BWD,FWD); // Rotate right
     *			setMotorDir(FWD,BWD); // Rotate left
     *			setMotorDir(BWD,BWD); // Move backwards
     *
     */
    void setMotorDir(uint8_t left_dir, uint8_t right_dir)
    {
    	mleft_dir = left_dir;
    	mright_dir = right_dir;
    	mleft_des_dir = left_dir;
    	mright_des_dir = right_dir;
    	if(left_dir)
    		PORTC |= DIR_L;
    	else
    		PORTC &= ~DIR_L;
    	if(right_dir)
    		PORTC |= DIR_R;
    	else
    		PORTC &= ~DIR_R;
    }
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Der Compiler meckert:

    PC.c:24: error: 'DIR_R' undeclared (first use in this function)
    PC.c:20: error: 'DIR_L' undeclared (first use in this function)
    PC.c:18: error: 'mright_des_dir' undeclared (first use in this function)
    PC.c:17: error: 'mleft_des_dir' undeclared (first use in this function)
    PC.c:16: error: 'mright_dir' undeclared (first use in this function)
    PC.c:15: error: 'mleft_dir' undeclared (first use in this function)

    ich benutze die M32.
    Geändert von AsuroPhilip (16.10.2011 um 10:55 Uhr)

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Irgendwie klemmt's heute extrem. Bindest du die Library ein?

    #include "RP6RobotBaseLib.h"

    In task_motionControl() wird bei Stillstand die Richtung ausgewählt:

    Code:
    				if(!TCCR1A) // Is the PWM module turned off?
    				{			// Yes, change direction and restore old speed:
    					setMotorDir(mleft_des_dir,mright_des_dir);
    					mleft_des_speed = mleft_des_speed_tmp;
    					mright_des_speed = mright_des_speed_tmp;
    					left_i = 0;
    					right_i = 0;
    				}
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    "ich benutze die M32." Aua
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Zitat Zitat von radbruch Beitrag anzeigen
    Bindest du die Library ein?

    #include "RP6RobotBaseLib.h"
    Ich habe folgende eingebunden:

    Code:
    #include "RP6ControlLib.h"
    #include "RP6ControlServoLib.h"
    #include "RP6uart.h"
    #include "RP6I2CmasterTWI.h"    
    #include "RP6Control_I2CMasterLib.h"

Ähnliche Themen

  1. Rechter Motor dreht nur rückwärts
    Von cele93 im Forum Asuro
    Antworten: 104
    Letzter Beitrag: 03.02.2015, 17:04
  2. Ein Motor dreht nur Vorwärts nicht Rückwärts
    Von Hohenloher im Forum Asuro
    Antworten: 12
    Letzter Beitrag: 11.03.2010, 17:23
  3. linker Motor dreht nur rückwärts
    Von icebreaker im Forum Asuro
    Antworten: 59
    Letzter Beitrag: 30.10.2009, 18:18
  4. rechter Motor dreht nur rückwärts!
    Von Munzi im Forum Asuro
    Antworten: 15
    Letzter Beitrag: 07.02.2009, 11:12
  5. Motor rückwärts drehen
    Von Impi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 14.02.2006, 17:34

Berechtigungen

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

LiFePO4 Speicher Test