Forum: Mikrocontroller und Digitale Elektronik Datenübertragung über UART zu 2xSMCi33-2 von Nanotec


von monkey luffy (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag,

Ein Textdatei enthält X- und Y-Koordinate und ist in meinem PC unter 
Windows XP gespeichert. Mein Ziel ist die Übertragung von Koordinaten 
über die

Schnittstelle RS232 des PCs bis zu einem Mikrocontrollerboard. Dann die 
empfangenen Koordinaten, die sich im Mikrocontrollerboard befinden, 
werden über eine

zusätzliche schnittstelle RS485 zu Zwei Motortreiber SMCI33-2 von 
Nanotec gesendet. Außerdem soll ein SMCI33-2 die X-Koordinaten empfangen 
und der andere

SMCI33-2 empfängt die Y-Koordinaten. Weiterhin besitzt jeder SMCI33-2 
eine Schnittstelle RS485 , um die Koordinaten zu empfangen.

Ich habe  für mein Experiment der Mikrocontroller 644p, da er zwei UARTs 
besitzt. Ein UART der 644p soll über die Schnittstelle RS232 die 
koordinaten von PC

empfangen und der andere UART der 644p wird über die Schnittstelle RS485 
die Koordinaten an den beiden SMCI33-2 übertragen. Da die Motortreiber 
SMCI33-2 die

Schnittstelle RS485 haben.
Ich habe die Schaltung auf ein Steckboard gebastelt und einige Teste 
ohne Schwierigkeiten durchgeführt. Kurz gesagt, die Schaltung läuft gut.

Anschließend wurde eine C++-Code geschrieben, um die X- und 
Y-Koordinaten vom PC zum Mikrocontrollerboard 644p zu senden. Diese 
Phase hat auch geklappt.

Nun möchte ich die Koordinaten, die sich in Mikrocontrollerboard 644p 
befinden,über die zweite UART (Schnittstelle RS485) zu den beiden 
Motortreiber SMCI33-2

übertragen. Ich habe eine C-Code unter der Entwicklungsumgebung AVR 
Studio 4 geschrieben und dann compiliert. Zwar bekomme ich keine 
Fehlermeldung, aber

meine beide Motortreiber empfangen keine Daten.

Woran kann das liegen ? kann jemand von euch mir helfen ?

Anbei der Textdatei, meine C- und C++-Code


N.B:

Allerdings besitzt der Motortreiber SMCI33-2 seine eigene Befehle. Wenn 
man die SMCI33-2 ansprechen möchte, dann soll man diese Anweisungen 
verwenden.

BSP einer Anweisung: '#1A\r'

 # -----> Startzeichen eines Befehls
 1 -----> Adresse des Motortreibers
 A -----> Starten eines Satzes(Eigentliche Anweisung)
 \r ----> Endzeichen eines Befehls
 '' ----> Zeichen, das sich immer vor dem Startzeichen (#) und nach dem 
Endzeichen (\r) befinden.


Danke im Voraus.

Mit besten Grüßen.

Luffy

: Gesperrt durch User
von Davor (Gast)


Lesenswert?

Ist zwar bisschen alt, habe diesen Beitrag gefunden, weil ich selbst ein 
Problem hatte.


monkey luffy schrieb:
> '' ----> Zeichen, das sich immer vor dem Startzeichen (#) und nach dem
> Endzeichen (\r) befinden.



1. Du solltest es ohne die '' Zeichen Schicken..
2. Habe mir deinen code durchgesehen du schickst einen String mit \r am 
ende. Ich bin mir nicht sicher ob dass die Schrittmotorsteuerung als CR 
(carriage return) oder als zwei zeichen nämlich einmal '\' und einmal 
'r' erkennt. Schließ mal eienne Serial Port monitor dazu und schau dir 
an was wirklich gesendet wird (am besten HEX Code und dann in einer 
ASCII Tabelle vergleichen)

von Karl H. (kbuchegg)


Lesenswert?

Davor schrieb:
> Ist zwar bisschen alt, habe diesen Beitrag gefunden, weil ich selbst ein
> Problem hatte.

Hättest du ihn bloss dort gelassen.

monkey luffy
ist zwar ein armer Hund, aber ist jemand, der versucht dadurch zu 
programmieren, indem er Codestücke, die er Gott weiß wo aufgeschnappt 
hat zusammenkopiert und solange bearbeitet, bis alle Fehlermeldungen weg 
sind. Was sich in dem Code tut, davon hat er wenig bis keine Ahnung. Von 
einfachen Softwarekonzepten hat er keine Ahnung.

Und nein. Das war nicht sein erstes Posting. Da gabs mehrere zu dem 
Thema. Ich kann nur hoffen, das er es irgendwann eingesehen hat und sich 
jemanden 'eingekauft' hat, der ihm seine UART Weiche programmiert hat.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.