mikrocontroller.net

Forum: PC-Programmierung string filtern?


Autor: tron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo leute,

Ich versuche eine RS232 Kommunikation mit einem Mikrocontroller zu 
realisieren, über die ich dann zwei Motoren steuern will (rechts und 
links drehen).
Einzelne Bytes kann ich bereits senden und auch wieder empfangen und 
auch die gesamte Hardware und teile des GUI stehen bereits.
Nun muss ich eine Datenstruktur für die Kommunkikation machen, hab da 
aber kein Plan!
Ich hab mir das etwa so vorgestellt.

struktur{
motor1
motor2
}

Das c++ Programm liest die Daten an der RS232 Schnittstelle aus und 
speichert sie ein eine Variabel.
Die Variabel wird wie folgt übermittelt:

sartbit+motor1+stopbit

Wie muss ich es anstellen, damit ich in c++ die Information der Variabel 
motor1 heruasfiltern kann und die start und stopbits nicht beachet 
werden?
Hat mir jemand einen Tipp, Beispiele, Code Schnipsel?

Ich suche keine Beispiele um eine RS232 Verbindung aufzubauen sondern 
wie ich eine Datenstruktur sinvoll übermitteln und wieder herausfiltern 
kann.

Danke

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Start- und Stopbits werden von der UART-Hardware verwaltet, die bekommst 
Du (und auch Dein µC-Programm) nicht zu sehen.

Autor: Christoph Mmmmmmm (Firma: privat) (mauralix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig sehe, hast du ein GUI Programm welches über RS232 
mit dem µC kommuniziert. Der µC nimmt die Daten über UART vom Gui 
Programm entgegen und steurt mit diesen Informationen dann die Motoren.
Das heißt, du benötigst eine Art Protokoll damit der Controller weiß was 
zu tun ist. Du kannst z.B 0x01 schicken um Motor1 zu schalten und 0x02 
um Motor2 zu schalten. Sollte also kein grosses Problem sein. Du kannst 
dir ja selbst ein ausgeklügeltes Protokoll überlegen.
mfg Christoph M.

Autor: tron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte die ganzen Parameter für die Motoren, GPS Position (hab ich 
im letzten Post vergessen zu erwähnen) in einer Struktur der RS232 
Schnittstelle übergeben. Ist es nicht zu fehleranfällig nur Hexwerte zu 
übermitteln?
@Rufus ich weiss, dass ich auf die Stop und Startbits der RS232 
Schnittstelle keinen Einfluss nehmen kann, will ich auch nicht.
Die "Start- und Stopbits" sind Informationen welchem Parameter der 
Struktur die Information übergeben werden soll.
zB.
[motor1start]rechts[motor1stop]
[motor2start]rechts[motor2stop]
etc.....

Dann könnte ich die Parameter der Struktur übergeben und es wäre auch 
egal wenn halt mal nicht 16 Bit sondern nur 15 Bit gesendet werden, weil 
ich ja die Informationen rausfilter könnte.
Nur weiss ich nicht wie ich aus einem String nur bestimmt abschnitte 
auslesen kann?!

Ich hoffe ich habe nun mein Problem eingermassen verständlich 
rübergebracht.
Ist sau schwer ;)

Danke

Autor: Christoph Mmmmmmm (Firma: privat) (mauralix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wegen der Übertragungssicherheit, kann man eine Prüfsumme oder ähnliches 
verwenden.
Zum "Filtern" der Strings: Du musst keine ganzen Strings 
übertragen(Redundanz). Es reicht auch wenn du z.B deine ganzen 
Informationen in ein Byte gibst und auf die einzelnen Bits zugreifst.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.