- 3D-Druck Einstieg und Tipps         
Seite 6 von 6 ErsteErste ... 456
Ergebnis 51 bis 60 von 85

Thema: RP6Control M32: Library für 8 Servos

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.10.2009
    Ort
    Ratingen
    Alter
    68
    Beiträge
    60
    Hallo,

    ich versuche gerade die Programme nach zu vollziehen. Es ist das erste Mal, daß ich eine neue Lib benutze. kann mir jemand sagen, wie ich mit dem Programmers Notepad die Lib übersetzt bekomme, dh. die entspr. .lst und -o Datei erstellen kann?

    Gruß

    Klaus

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    28.10.2009
    Ort
    Ratingen
    Alter
    68
    Beiträge
    60
    Hallo,

    habe meinen Fehler gefunden, hatte eine Zeile im Makefile vergessen

    Gruß

    Klaus

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    @Dirk
    manchmal die Lib nicht neu kompiliert
    das war auch mein Verdacht und so hatte ich ja auch RIGHT_Touch verändert und bildete mir ein eine Veränderung zu sehen und war mir so sicher das sie neu eingebunden wurden.
    Völliger Quatsch, ich muss mich getäuscht haben, denn genau daran lag es, nach dem löschen der Dateien, funktioniert jede Änderung und die Anschläge werden auf beiden Seiten erreicht. Danke
    starten wieder mit startSERVO().
    MAN... bin ich blöd
    mfg TrainMen

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I♥ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    könnt ihr mir helfen, bei mir will ein programm nicht laufen:


    Code:
    #include "RP6ControlServoLib.h" 
      
    int main(void) 
    { 
       initRP6Control(); 
       initLCD();
    
       initSERVO(SERVO1); 
    	startStopwatch1();
    	setStopwatch1(0);
       
       while(1) 
       {
        
        if (getStopwatch1() > 1000 && getStopwatch1() < 2000) 
        {
    	clearLCD();
    	servo1_position = MIDDLE_POSITION; 
        showScreenLCD("    MITTLERE    ", "    POSITION    ");
    	setLEDs(0b0110);
    	} 
    
    	if (getStopwatch1() > 2000 && getStopwatch1() < 3000) 
    	{
    	clearLCD();
    	servo1_position = LEFT_TOUCH; 
    	showScreenLCD("     LINKE      ", "    POSITION    ");
    	setLEDs(0b1000);
    	} 
    
    	if (getStopwatch1() > 3000 && getStopwatch1() < 4000) 
    	{
    	clearLCD();
    	servo1_position = RIGHT_TOUCH; 
    	showScreenLCD("     RECHTE     ", "    POSITION    ");
    	setLEDs(0b0001);
    	} 
    
    	if (getStopwatch1() > 4000) 
        {
    	setStopwatch1(0);
    	} 
    
        task_SERVO(); 
       } 
       return 0; 
    }

    ich hab schon imma wieda ein paar sachen verändert (das programm läuft dann auch anders, aber nie so wie es sollte)


    MfG Julian

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @I♥ROBOTIC:

    Sieht eigentlich gut aus.

    Nur 2 Hinweise:

    1. In der Servo-Lib dient LEFT_TOUCH nur zum Einstellen des linken Anschlags. Sonst braucht man das nicht mehr.
    Der linke Anschlag ist einfach 0.
    Also:
    Anstelle von: servo1_position = LEFT_TOUCH;
    ... einfach: servo1_position = 0;

    2. Die Stopwatch-Tests müßten so funktionieren, aber ich würde es "eindeutiger" mit Klammern machen:
    Anstelle von: if (getStopwatch1() > 1000 && getStopwatch1() < 2000)
    ... lieber: if ((getStopwatch1() > 1000) && (getStopwatch1() < 2000))

    Gruß Dirk

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I&amp;#9829;ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    hab ich gemacht aber es passiert exakt ds gleiche: Servo fährt nach links und auf dem LCD wird nichts angezeigt, hin und wieder wird das programm nach ein paar sekunden dann beendet, manchmal läuft es auch ewig

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @I♥ROBOTIC:

    Oh, ich sehe ... war doch nicht so gut. Das hatte ich übersehen.

    Die 3 if-Zweige laufen ja permanant in der while(1) Schleife ab. Das heißt, dass ständig das LCD gelöscht und neu beschrieben wird. Da sieht man dann nichts mehr auf dem LCD.

    Ersetz mal: if (getStopwatch1() > 1000 && getStopwatch1() < 2000)
    durch: if (getStopwatch1() = 1000)
    ... und die anderen beiden if Bedingungen auch so.

    Gruß Dirk

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I&amp;#9829;ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    jetzt macht der Servo gar nichts und auf dem lcd wird ganz kurz die position angezeigt, dann wechselt die position

    Video:
    http://www.file-upload.net/download-...028_1.wmv.html

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Ok, das hier:

    * ************************************************** **************************
    * ATTENTION: Stopwatch 1 is used for the servo task! Please do
    * not use this stopwatch elsewhere in your program!
    *
    * ************************************************** **************************

    ... hatte ich auch noch übersehen.

    Die Stopwatch1 wird von der Lib verwendet und darf im eigenen Programm nicht benutzt werden.

    Also: Nimm z.B. Stopwatch2!

    Gruß Dirk

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I&amp;#9829;ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    ach j das hatte ich selber auch ganz übersehen...... ^^ Danke

Seite 6 von 6 ErsteErste ... 456

Berechtigungen

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

Labornetzteil AliExpress