PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pin zum Senden einrichten



datatom
30.07.2011, 18:09
Hallo zusammen,

ich habe das RN-Mega2560 und möchte Daten über die serielle Schnittstelle versenden. Dazu möchte ich den Pin "PH1 / TXD2 (freie RS232 /TTL Pegel)" nutzen. Die Daten sollen an ein Servoboard geschickt werden.

Bisher sieht mein Programm so aus:

$regfile = "m2560def.dat"
$hwstack = 82
$framesize = 68
$swstack = 68
$crystal = 16000000 'Quarzfrequenz


$baud = 9600
Dim Servonummer As Byte
Dim Servodevice As Byte
Dim Servocommand As Byte
Dim Servodata1 As Byte
Dim My_string As String * 1

Config Pind.5 = Output
Led Alias Portd.5

Do
Led = 1

'Servogeschwindigkeit
Servodevice = 1 'Jedes Servoboard hat eine Device-Nummer
Servonummer = 7 'Servonummer 0 bis 7
Servocommand = 1 'Befehl: Setze Geschwindigkeit
Servodata1 = 127 'Geschwindigkeit (0 - 127) 127 = max. Geschwindigkeit
Print Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1)

'Servoposition
Servodevice = 1 'Jedes Servoboard hat eine Device-Nummer
Servonummer = 7 'Servonummer 0 bis 7
Servocommand = 2 'Befehl: Setze Position
Servodata1 = 127 'Position (0 - 127) 0 = ganz rechts; 127 = ganz links
Print Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1)

Wait 2
Led = 0

Servodevice = 1
Servonummer = 7
Servocommand = 2 'Befehl: Setze Position (0 - 127)
Servodata1 = 0 'Position
Print Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1)

Wait 2

Loop

End

Das LED blinkt ordnungsgemäß. Aber die Daten kommen wohl nicht zum Servoboard. Muss ich nicht noch den Ausgangspin einrichten? Ich habe leider keine Ahnung:(

Viele Grüße und Danke im Voraus

datatom

Richard
30.07.2011, 18:20
Um die RS232 Schnittdelle ein zu schalten muss ein $baud = (Baudrate) im Header stehen, print muss natürlich auch gesagt werden auf welche Schnittstelle ausgegeben werden soll. Den 2560 kenne ich leider nicht, wie die Schnittellen zugeortnet werden sollte im Datenblatt stehen. :-)

Gruß Richard

Che Guevara
30.07.2011, 18:50
Hallo,

was soll das heißen: "Aber die Daten kommen wohl nicht zum Servoboard."? Ist das eine Vermutung von dir oder hast du das herausgefunden? Probier doch mal, Daten über die UART an den PC zu schicken! Dann kannst du schon mal herausfinden, ob überhaupt Daten gesendet werden. Dann würde ich überprüfen, ob beide Boards die selben UART Parameter haben.

Gruß
Chris

Richard
30.07.2011, 19:21
Hallo,

was soll das heißen: "Aber die Daten kommen wohl nicht zum Servoboard."? Ist das eine Vermutung von dir oder hast du das herausgefunden? Probier doch mal, Daten über die UART an den PC zu schicken! Dann kannst du schon mal herausfinden, ob überhaupt Daten gesendet werden. Dann würde ich überprüfen, ob beide Boards die selben UART Parameter haben.

Gruß
Chris

Stimmt, aber er hat geschrieben das die (seine) RS232 mit TTL Pegeln arbeitet. Eine LED mit vorwiderstand an TXD und laaaaangsamer Baudrate, dann sieht man die Daten an der LED. :-) Oder TXD RXD verbinden und sich selber "unterhalten". :-) Aber ohne die Schnittstelle überhaupt zu definieren und ein Print an wasauchimmer?
Der TXD PIN DH1/Tx2 ist mehrfach vergeben und TX2 wird ohne ein $Baud = xxxxx nicht b.z.w. für DH1 ( wasimmerdasauchist) benutzt......

Gruß Richard

Che Guevara
30.07.2011, 19:30
Ein Max232 und ein bisschen Hühnerfutter (incl. Kabel) sollte kein Problem sein ... Ok, das mit der LED ist nicht schlecht :) Ein Print ohne eine Kanalnummer printet IMHO an die erste Hardware UART! Hatte mal nen ATMEGA644P im Einsatz, da habe ich auch ohne eine Kanalangabe Daten über die UART rausgeschickt, war kein Problem ;) Durch die Baud Anweisung wird die Schnittstelle ja aktiviert, aber da stellt sich mir schon die nächste Frage: Ist das Servoboard auch auf die gleiche Baudrate eingstellt? Die Pins müssen nicht extra konfiguriert werden, das passiert durch die Baud Anweisung automatisch ;)

Gruß
Chris

Richard
30.07.2011, 20:02
Stimmt ist bei jedem AVR (mit nur eine2 Hartware UART so) wie das bei Typen mit mehreren aussieht? Er nimmt je die 2. und ein Baut = hat er überhaupt nicht im Programm.....

LED: Ich habe hier noch ein per "Mäuseklavier" umschaltbares RS232 Testkabel mit LED's für TX,RX,DSR,CTS, RTS...sehr praktisch. Das Teil ist ca. 20 Jahre alt, entsprechend "versaut" sieht die Beschreibung aus....Ich habe eine Kopie an gehangen, ist auch geladen geworden, aber wo die geblieben ist? https://storage.driveonweb.de/dowdoc/1867b7c1f4c11873203a41128f1d480a

Gruß Richard

Che Guevara
30.07.2011, 20:25
Ohje stimmt, da habe ich wohl wieder etwas zu voreilig gelesen, sorry... Du hast natürlich Recht, die 2. Uart muss auch initialisiert werden!
Dann ist ja klar, warums nicht funktioniert ;)

Gruß
Chris

datatom
01.08.2011, 10:35
Hallo zusammen,


Der TXD PIN DH1/Tx2 ist mehrfach vergeben und TX2 wird ohne ein $Baud = xxxxx nicht b.z.w. für DH1 ( wasimmerdasauchist) benutzt......



Stimmt ist bei jedem AVR (mit nur eine2 Hartware UART so) wie das bei Typen mit mehreren aussieht? Er nimmt je die 2. und ein Baut = hat er überhaupt nicht im Programm.....

Verstehe ich nicht. Ich habe doch $Baud im Programm belegt, siehe oben. Helft mir bitte ein bisschen auf die Sprünge.

Gruß

datatom

Richard
01.08.2011, 10:40
Hallo zusammen,





Verstehe ich nicht. Ich habe doch $Baud im Programm belegt, siehe oben. Helft mir bitte ein bisschen auf die Sprünge.

Gruß

datatom

OK, das $baut = steht im 2. Block, hatte ich übersehen. :-(

Gruß Richard

datatom
01.08.2011, 11:16
Das beste ist, ich halt mal ne LED an den Pin. Und melde mich dann noch einmal.

Eine Frage noch:

Das RN-Mega2560 hat mehrere Anschlüsse für die 5V Spannungsversorgung und für GND. Bis her habe ich nur einen Pin an 5V und einen an GND angeschlossen. Ich habe mal gelesen, dass alle Anschlüsse des Boards für die 5V Spannungsversorgung und GND angeschlossen sein müssen. Stimmt das?


Grüße

datatom

Richard
01.08.2011, 11:37
Das beste ist, ich halt mal ne LED an den Pin. Und melde mich dann noch einmal.

Eine Frage noch:

Das RN-Mega2560 hat mehrere Anschlüsse für die 5V Spannungsversorgung und für GND. Bis her habe ich nur einen Pin an 5V und einen an GND angeschlossen. Ich habe mal gelesen, dass alle Anschlüsse des Boards für die 5V Spannungsversorgung und GND angeschlossen sein müssen. Stimmt das?


Grüße

datatom

Irgend einen Grund wird es haben wenn mehrere Pin's für vcc und gnd vorgesehen sind....Ansonsten kannst Du ja messen ob die Pin's intern verbunden sind. Sag einmal, auf http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=162 kannst Du Beispiel Programme laden, mit Glück ist auch die 2. RS232 dabei....

Gruß Richard