PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 Schnittstelle per Software erzeugen



Friedrich Mairhofer
17.03.2011, 11:54
Hallo Community,

bin Student im Bereich Mechatronik/Robotik. Im Zuge einer Projektarbeit ist die Ansteuerung eines Deltaroboters zu realisieren. (Über GUI)

Es wird eben ein RNcontrol Eval- Board benutzt.
siehe Hier: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=10

Die Ansteuerung der Servos (3) geht über ein MicroServoboard:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=118

So, wie der Titel schon sagt möchte ich ein "virtuelle RS232 Schnitstelle" erzeugen, da die eine RS232 Schnittstelle für die Kommunikation mit der GUI gedacht ist. (falls wer fragt programmierung geht über JTAG).

Für die Kommunikation mit dem Micro Servo Board muss ich jetzt 3 bytes übertragen.

Ablauf:
1) Ich bekomme jetzt die Daten von der GUI
2) Hab einen Algorithmus der mir das in Winkel umrechnet
3) Übertrage die Daten dann an Servoboard

Jetzt mein Denkansatz zur Erzeugung von einer RS232 Schnittstelle (muss nicht stimmen ;-):

Ich nehme das erste der 3 Bytes und vergleich es jetzt mit einer Maske
sprich die Bitfolge ist 01110001
Maske hat z.b. 0000 0001

Diese beiden Signale werden mit einem
& verknüft und in
eine if- Anweisung hinein geschmissen (sprich wenn 1 dann ausgabe am Pin)

In der If- Anweisung habe ich nun eine Schleife mit einem Timer der mir die Signallänge erzeugt.

Sprich ich stelle Timer > starte diesen > wenn Overflow > dann Ende mit Signalübertragung.

Nur mein Problem ist jetzt dass das nicht funktionieren wird, weil ich dann wieder Überprüfen muss ob ein Bit vorhanden ist (mit der nächsten Maske) und dadurch eine Totzeit ensteht.

Und bevor ich jetzt hier umher programmiere (auch mit Interrupts) und anderem Zeug das mir ganz schlecht wird wollte ich nochmal hier anfragen ob irgendwer eine Lösung weiß.


mfg

sast
17.03.2011, 12:28
Schau mal hier rein http://www.rn-wissen.de/index.php/Software-UART_mit_avr-gcc

sast

Frank
17.03.2011, 12:57
In Bascom gehts besonders einfach mit den virtuellen Schnittstellen
(Ports müssen für RN-Control angepasst werden).




Dim Tstr As String * 4
Dim Num As Word

'open channel for output
Open "comb.1:9600,8,n,1" For Output As #1
Open "comb.0:9600,8,n,1" For Input As #2

Do
Print #1 , "text: "
Input #2 , Tstr
Print #1 , Tstr
Print #1 , "number: "
Input #2 , Num
Print #1 , Num
Loop

'am ende schließen
Close #1
Close #2