Ok das is jz die letzte frage!
Den code soll ich auf die M128 laden und nicht auf den rp6 oder??
Druckbare Version
Ok das is jz die letzte frage!
Den code soll ich auf die M128 laden und nicht auf den rp6 oder??
Mein code ist für die base wenn du ihn auf der 128 nutzen willst dann musst du nur die Leitung ändern
ok ich probier mal!
ich schreib dann noch mal wenns geht oder wenns nicht geht!
danke für die gedult!
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??
Ohne Code können wir da überhaupt nicht helfen...
Schreib meine Funktion mal ohne void oder schreib es vor der initialisierung der Base
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.
du musst dann in der Hauptschleife Servo(15); aufruffen in Klammern steht
der winkel
Ich habs schon mehrere stunden an dem code gearbeitet aber immer wieder gibt es probleme!
Ich habs auch schon mit dem probiert:
aber auch da gibt es probleme mit kommentaren....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
' -----------------------------------------------------------------------------
keine ahnung was ich noch machen soll...
ich werd einfach auf jeden fall noch probieren...
Du programmierst ja auch in Bascom ich hab ein c Programm geschrieben!