PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie erzeuge ich eine weitere serielle Schnittstelle



30.09.2004, 19:14
Hallo,l

hab mir den Servocontroller bei Robotikhardware bestellt. Ansich braucht der ja nur 5 V, Masse und ein TX. Das ist mein Problem. Hab das RN Controll Board und benötige die serielle Schnittstelle später für einen Transreceiver. Hab irgendwo gelesen das man aus nem normalen Prort (analog/digital,welcher Port???) über Bascom ne Schnittstelle "erzeugen kann. Bräuchte dringend Hilfe!

x-ryder
30.09.2004, 20:04
Hi,

guck mal inner Bascomhilfe nach Serout, dann findest du nen Befehl für nen Software UART.

Martin

Frank
30.09.2004, 20:31
In diesem Beispiel wird eine zusätzliche RS232 zur Steuerung eines Servo-Bausteines verwendet. Ich denke das hilft dir auch etwas:





'################################################# ##
'servotreibertestrns1.bas
'für
'RoboterNetz Standard-Roboter Board RBNFRA ab V1.1
'Achtung, dieses Demo ist nur für Servotreiber RNS1 (siehe Download) gedacht
'
'Aufgabe:
'10 Servos über CoController ansteueren
'Für die Ansteuerung muss ein RS232 Jumper oder eine
'Brücke gesteckt werden, siehe Tips im Roboternetz Projektforum
'Das Demo dreht erst langsam Servo 1 von Pos 1 zu 255 und
'danach wechselt es schnell 4 mal die Seite. Danach beginnt es von vorn
'Natürlich kann man auch 10 Servos gleichzeitig ansteuern, der
'Übersicht wegen hier nur das Beispiel mit einem Servo
'
'Autor: Frank
'Weitere Beispiele und Beschreibung zur rnbfra
'unter http://www.Roboternetz.de + robotikhardware.de
'################################################# ##


$regfile = "m16def.dat"


Declare Sub Rnb_servo(byval Servonummer As Byte , Byval Position As Byte)
Declare Sub Rnb_servob(byval Servonummer As Byte , Byval Position As Byte)


Dim I As Byte
Dim Pos As Byte

$crystal = 8000000 'Quarzfrequenz
$baud = 9600


Wiederhole:

For I = 1 To 255
Call Rnb_servo(1 , I)
Waitms 50
Next I

For I = 1 To 4
Pos = 1
Call Rnb_servo(1 , Pos)
Wait 2 'Warte 2 Sekundne
Pos = 255
Call Rnb_servo(1 , Pos)
Wait 2
Next I

Goto Wiederhole




Sub Rnb_servo(byval Servonummer As Byte , Byval Position As Byte)
Print "#s" ; Chr(servonummer) ; Chr(position)
End Sub

Sub Rnb_servob(byval Servonummer As Byte , Byval Position As Byte)
Open "comd.7:9600,8,n,1" For Output As #2
Print #2 , "#s" ; Chr(servonummer) ; Chr(position)
Close #2
End Sub

End



Die für dich entscheidenen Zeilen sind hier:
Hier wird Port D7 als TX definiert


Open "comd.7:9600,8,n,1" For Output As #2
Print #2 , "#s" ; Chr(servonummer) ; Chr(position)
Close #2

goofrider
30.09.2004, 21:21
Wie ist das mit dem Jumper stecken im oberen Code, gilt das auch für RN-Controll?

30.09.2004, 21:30
Das mit dem Jumper gilt nur für rnbfra-Board. Bei rn-Control nimmst du einfach irgendeinen Port