PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Problem] Serielle Datenübertragung



robosapiens
23.01.2014, 15:50
Hallo,

ich beschäftige mich noch nicht all zu lange mit dem Controllerboard RN-Control 1.4 von Robotikhardware.
Ich versuche gerade mit meinem Board einen einfachen Text über die Serielle Schnittstelle an den PC zu übertragen und auszugeben. Habe mir für den Anfang folgende Bücher gekauft und auch die Anweisungen befolgt: "Roboter selbst bauen" und "Programmieren AVR-Risc Bascom".

Ich bekomme jedoch ausschließlich irgendwelche Kryptischen Zeichen ausgegeben.
Habe zu dem Problem gegoogelt und meiner Ansicht nach alles richtig gemacht:
- Taktfrequenz und Baudrate angepasst


Bitte um eure Hilfe, bin am Verzweifeln!!

Vielen Dank schonmal
robosapiens

oberallgeier
23.01.2014, 18:19
Hallo


... ich beschäftige mich ... mit dem Controllerboard RN-Control 1.4 v ... bin am Verzweifeln ...Schon mal die Dokumentation zum Board angesehen (NEIN) ?? Die gibts doch beim Kauf auf CD dazu ! ? ! ? Darin steht nämlich ein Bascom-Beispiel, bei dem einige Sätze über die Serielle Schnittstelle ausgegeben werden.

Du sprichst kein Bascom? Dann nimm das Demoprogramm in der C-Version. Schon angesehen (NEIN) ? Dort heisst die ungefähr fünfundzwanzigste Zeile

/*### Senden per USART - RS232-Kommunikation ###*/

Also - blos nicht verzweifeln, Dokumentation ansehen oder Suchfunktion verwenden.

Ein paar Tipps: die Baudrate von Sender und Empfänger muss übereinstimmen. Die Belegung von Stecker und Gegenstecker muss stimmen - dazu stehen in der Dokumentation ein paar hilfreiche Worte.

Die RNControl gibt eigentlich ein "richtiges" EIA232-Protokoll aus - das sollte ja schon fabrikfrisch was zum PC senden (können).

malthy
23.01.2014, 18:56
Moin!



Läuft der Controller wirklich auf der Clock die Du glaubst (-> Fusebits, insb. CLKDIV)?
Sind die Masse(n) der seriellen Schnittstellen verbunden (das müssen sie)?


Das wären aus meiner Sicht erstmal die Klassiker ... https://www.roboternetz.de/phpBB2/images/smiles/icon_wink.gif Immerhin kommt schonmal etwas an, ganz falsch kann es also nicht sein.

Gruß
Malte

robosapiens
24.01.2014, 08:50
Hallo,

schon mal vielen vielen Dank für eure Hilfe!
Die Masse habe ich verbunden mit dem Board über den 5ten Port des Seriellen Steckers.

Folgendes macht mich grad stutzig; "Fusebits, insb. CLKDIV".
Über die Fusebits habe ich bereits was gelesen, jedoch noch nicht den Sinn verstanden. Habe screenshots im Internet darüber gesucht und mit meinen Einstellungen verglichen, weiß jedoch natürlich nicht, ob ich alles richtig gemacht habe.

Wie bzw. worauf muss ich die von dir genannten Fusebits einstellen?



Danke schon mal
Robosapiens

malthy
24.01.2014, 12:02
Hey,

habe ich richtig verstanden dass du mit Bascom programmierst? Dann musst Du bei den Fusebits folgendes machen damit die Clock nicht geteilt wird:

27319

Vielleicht hilft's ...

Gruß
Malte

robosapiens
26.01.2014, 18:22
Hallo,

habe eine serielle Datenübertragung nun hinbekommen.
Nur was ich gar nicht verstehe ist, dass der Microcontroller und das Terminal die gleiche Baudrate haben muss, ich nun aber dem Micro. 9600 zugewiesen habe und dem Terminal 600. Mit diesen Einstellungen funktioniert die Datenausgabe, nur wieso?


Danke schonmal

oberallgeier
26.01.2014, 18:31
... dem Micro. 9600 zugewiesen habe und dem Terminal 600 ... funktioniert die Datenausgabe, nur wieso ...Klingt ziemlich deutlich nach falsch genannten Prozessortakt im Quellcode. Oder hast Du nen Controller, bei dem Du den Takt teilen/vierteln kannst? Siehe Posting von Malte.

Schau mal hier nach: http://www.engbedded.com/cgi-bin/fcx.cgi

malthy
26.01.2014, 18:39
[...] dem Micro. 9600 zugewiesen habe und dem Terminal 600.

9600/600 = 16. Der µC läuft also offenbar 16 mal langsamer als Du (und er) denk(s)t. Bevor man anfängt wild zu spekulieren: toggle doch einfach mal einen Port mit einem festen Intervall und schau dann mal ob das so rauskommt wie Du erwarten würdest. Also in Bascom konkret sowas:



...

do
toggle portx.y
waitms 100
loop

...


Gruß
Malte

robosapiens
11.02.2014, 17:07
Hallo,

vielen Dank für euere Unterstützung, hat mir viel gebracht. Habe nun das Problem lösen können.

Eine andere Frage, hat einer von euch schonmal probiert, einem Roboter Koordinaten zu geben, und ihn dann autonom dahin fahren zu lassen? Wenn nicht, hat einer von euch eine Idee wie ein Ansatz aussehen könnte, soetwas hin zu bekommen?

Danke schonmal
Daniel / robosapiens :D