- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: Servos an M128-Erweiterungsplatine (CC-Pro)

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2010
    Beiträge
    10
    Anzeige

    Praxistest und DIY Projekte
    Ok das is jz die letzte frage!

    Den code soll ich auf die M128 laden und nicht auf den rp6 oder??

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    30
    Beiträge
    661
    Mein code ist für die base wenn du ihn auf der 128 nutzen willst dann musst du nur die Leitung ändern
    MfG Martinius

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2010
    Beiträge
    10
    ok ich probier mal!

    ich schreib dann noch mal wenns geht oder wenns nicht geht!

    danke für die gedult!

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2010
    Beiträge
    10
    So ich hab jz alles geändert.

    Nun sollte vom code eigentlich alles passen.

    Ich hab das alles in dem C.Control Pro IDE damit ichs auf die Platiene spielen kann.

    Aber wenn ich das ganze komplimieren will steht unten: "Syntax Fehler -erwartete ´EOF´ ,gefunden ´void´.

    Was soll ich da machen??

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    523
    Ohne Code können wir da überhaupt nicht helfen...

  6. #16
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    30
    Beiträge
    661
    Schreib meine Funktion mal ohne void oder schreib es vor der initialisierung der Base
    MfG Martinius

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2010
    Beiträge
    10
    void Servo(uint8_t 10)
    {
    do
    {
    a++;
    PB5 |= (1<<4);
    PB5 |= (1<<4);
    Sleep(90);
    PB5 &= ~(1<<4);
    mSleep(127);
    }
    while(Servostellzeit >= 20)
    }



    Das is der code.

  8. #18
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    30
    Beiträge
    661
    du musst dann in der Hauptschleife Servo(15); aufruffen in Klammern steht
    der winkel
    MfG Martinius

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2010
    Beiträge
    10
    Ich habs schon mehrere stunden an dem code gearbeitet aber immer wieder gibt es probleme!

    Ich habs auch schon mit dem probiert:

    Code:
    /******************************************************************************* 
     * RP6 C-Control PRO M128 Erweiterungsmodul 
     * ---------------------------------------------------------------------------- 
     * RP6_Servo Demoprogramm 1 - CCPRO BASIC 
     * ---------------------------------------------------------------------------- 
     * RP6_Servo: Ansteuerung von 3 Servos 
     * 3 Standard-Servos erforderlich 
     * Mega128: Servo-Ausgänge PB5, PB6, PB7 (PortB.5, .6, .7) 
     * Erforderliche Library: IntFunc_Lib.cc. 
     * 
     * Drei zusätzlich erforderliche Standard-Servos (z.B. CONRAD ES-030) 
     * werden in dieser Demo gleichzeitig angesteuert. Die Demo ist ausgelegt 
     * für die CCPRO-IDE ab Version 2.0. 
     * Auf dem LCD-Display wird in der 1. Zeile die Servo-Position und in der 
     * 2. Zeile die zugehörige Impulsdauer in Mikrosekunden (us) angezeigt. 
     * 
     * Hinweis: 
     * Für allgemeine Programmierhinweise zur CCPRO schauen Sie sich bitte die 
     * CCPRO Dokumentation und die zugehörigen Beispielprogramme an! 
     * Es sei auch nochmals darauf hingewiesen, dass die normalen Beispielprogramme 
     * für die CCPRO nur zum Teil direkt auf dem RP6-CCPRO Modul laufen. 
     * Die Anschlussbelegung ist natürlich komplett anders als auf dem 
     * C-Control Application Board. Auch die LCD Ansteuerung ist leicht anders, 
     * da hier noch zusätzliche LEDs mit an dem Schieberegister angeschlossen sind. 
     * --> Die C-Control Beispielprogramme müssen ein klein wenig angepasst 
     * werden bevor sie auf diesem Modul laufen können! 
     * 
     * ***************************************************************************** 
     * Der Roboter bewegt sich in diesem Beispielprogramm NICHT und kann 
     * am Rechner angeschlossen bleiben! 
     ******************************************************************************/ 
    
    ' WICHTIG: Immer die RP6CCLib mit einbinden: 
    #include "../../RP6CCLib/RP6CCLib.cbas" 
    
    ' ----------------------------------------------------------------------------- 
    ' Defines: 
    
    ' Servo Konstanten: 
    #define SERVO1 13       ' Servo an PB5 
    #define SERVO2 14       ' Servo an PB6 
    #define SERVO3 15       ' Servo an PB7 
    
    ' Servo Bewegungsgrenzen 0,7..2,3ms (abhängig vom Servotyp): 
    #define LINKER_ANSCHLAG      700                      ' Linker Anschlag  (0,7ms) 
    #define RECHTER_ANSCHLAG   (2300 - LINKER_ANSCHLAG) ' Rechter Anschlag (2,3ms) 
    #define MITTE_POSITION      (RECHTER_ANSCHLAG / 2)   ' Mitte-Position   (1,5ms) 
    ' Wenn man die Bewegungsgrenzen für ein bestimmtes Servo einstellen will, 
    ' muss erst der linke Anschlag so eingestellt werden, dass das Servo bei 
    ' servo_pos = 0 am linken Anschlag steht und nicht "brummt", d.h. gegen 
    ' den Anschlag arbeitet. Die Werte für LINKER_ANSCHLAG werden zwischen 
    ' 700 und 1000 (us) liegen. 
    ' Danach muss mit servo_pos = RECHTER_ANSCHLAG die Stellung am rechten 
    ' Anschlag gesucht werden, bei der das Servo ebenfalls nicht "brummt", 
    ' indem der Wert "2300" in der Definition von RECHTER_ANSCHLAG geändert 
    ' wird. Die Werte werden zwischen 2000 und 2300 (us) liegen. 
    ' Nach dieser Einstellung kann man das Servo mit Werten (servo_pos) von 
    ' 0 (= linker Anschlag) bis RECHTER_ANSCHLAG bewegen. Natürlich könnte 
    ' man auch direkt die Werte für die Impulsdauer (us) benutzen. Der Vor- 
    ' teil dieser Umrechnung auf Positionswerte besteht darin, dass man die 
    ' Servogrenzen vorab gut einstellen kann. 
    
    ' ----------------------------------------------------------------------------- 
    ' Variablen: 
    
    Dim servo_var(9) As Byte                    ' globale Variablendeklaration 
    Dim servo_pos, impulsdauer As Integer 
    
    Sub main() 
        ' WICHTIG! Immer als erstes aufrufen: 
       RP6_CCPRO_Init() ' Auf Startsignal warten, LCD und andere Dinge initialisieren ! 
    
        ' ------------------------------------------------------ 
    
        ' Zwei Zeilen Text mit dem LCD anzeigen: 
        showScreenLCD("RP6 CCPRO M128", "RP6 Servo Demo 1") 
    
        ' Zweimal piepsen: 
        beep(200, 300, 100)   ' Format: beep (<tonhöhe>, <dauer>, <pause>) 
        beep(100, 100, 100) 
    
        ' Text über serielle Schnittstelle ausgeben: 
        newline() ' Neue Zeile 
        println("   ________________________") 
        println("   \\| RP6  ROBOT SYSTEM |/") 
        println("    \\_-_-_-_-_-_-_-_-_-_/ ") 
        newline() 
        println("    Let's go!  ") 
        newline() 
    
        ' 2 Sekunden Pause: 
        AbsDelay(2000) 
    
        ' ------------------------------------------------------ 
        ' Servo-Hauptprogramm: 
    
        clearLCD()                              ' Display löschen 
    
        ' Initialisierung für 3 Servos, Periodendauer 20ms, Timer 3: 
        Servo_Init(3, 1, servo_var, 1) 
    
        servo_pos = 0 
    
        Do While True                           ' Endlosschleife 
           setCursorPosLCD(0, 0)      ' Zeile 1 
            printLCD("Servo Pos.: ") 
              printIntegerLCD(servo_pos) 
            printLCD("   ") 
            impulsdauer = LINKER_ANSCHLAG + servo_pos 
           setCursorPosLCD(1, 0)      ' Zeile 2 
            printLCD("Impuls[us]: ") 
              printIntegerLCD(impulsdauer) 
            printLCD(" ") 
            Servo_Set(SERVO1, impulsdauer) 
            Servo_Set(SERVO2, impulsdauer) 
            Servo_Set(SERVO3, impulsdauer) 
            If servo_pos = 0 Then 
                AbsDelay(1000) 
                Servo_Off() 
                AbsDelay(5000) 
            End If 
          servo_pos = servo_pos + 10      ' Nächste Position nach rechts 
          If servo_pos > RECHTER_ANSCHLAG Then 
                Servo_Off() 
                AbsDelay(6000) 
             servo_pos = 0              ' Servo Position: 0..RECHTER_ANSCHLAG 
            End If 
            AbsDelay(25) 
        End While 
    End Sub 
    
    ' ----------------------------------------------------------------------------- 
    ' Alle drei Servos ausschalten: 
    Sub Servo_Off() 
            Servo_Set(SERVO1, 0) 
            Servo_Set(SERVO2, 0) 
            Servo_Set(SERVO3, 0) 
    End Sub 
    
    ' -----------------------------------------------------------------------------
    aber auch da gibt es probleme mit kommentaren....

    keine ahnung was ich noch machen soll...

    ich werd einfach auf jeden fall noch probieren...

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    30
    Beiträge
    661
    Du programmierst ja auch in Bascom ich hab ein c Programm geschrieben!
    MfG Martinius

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test