PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serielle Kommunikation



Arne
26.07.2006, 16:03
Hallo,

meine serielle Kommunikation klappt nur eingeschränkt.
Hier ein kl. Beispielprogramm. Damit kann man über serielle Eingabe den Servo, der an Port B.0 angeschlossen ist, steuern.
Das funktioniert unter Hyper Terminal auch. Jetzt das Problem:
Benutze ich ein Programm, dass jede 0,5 sek den Wert sendet, springt der Servo alle ca. 30 sek für kurze Zeit auf die Nullposition und fährt dann wieder auf die gewünschte Position. Erhöhe ich die Sendefrequenz , z.B. 5 HZ - sollte bei 9600 Baud und nur 3 Ziffern doch nicht zu schnell sein - springt der Servo alle ca. 10 Sek auf die Nullposition.
Ich vermute ein Synchronisationsproblem. Vielleicht die Flusssteuerung/Handshake?! Wie kann ich die beim Controller einstellen?
Das Coumputer Programm sendet nur in eine Richtung.




'$sim
$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000





Config Servos = 1 , Servo1 = Portb.0 , Reload = 10

Config Portb = Output

Enable Interrupts

Dim A As Integer
Do
Input "stellung für 1. servo - test?" , A
Print "a"
Servo(1) = A '1000 uS on

Loop


End

SIGINT
26.07.2006, 16:45
Hallo Arne,
ohne mir das Programm angeschaut zu haben wollte ich mal Fragen, ob du 100% sicher bist, daß die Servo- Routinen funktionieren? Hast du die mal ohne die RS232- Kommunikation getestet.

Gruß,
SIGINT

Arne
26.07.2006, 17:00
die routine ist aus der bascom hilfe übernommen.. die stimmt schon

SIGINT
27.07.2006, 16:25
AAAUTSCH....
vielleicht hätte ich mir den Code mal ne Sekunde anschauen sollen.
Du hast ja keine eigene Servo-Routine geschrieben. Ich hab aber beim suchen folgendes gefunden:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=180921#180921
Vielleicht hilft das weiter...
anscheinend ist BASCOM nicht genau genug für Servos.

Gruß,
SIGINT