PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm um den asuro zu steuern



Razzorhead
21.07.2009, 00:48
Hi leute,

Ich will den asuro über ein Delphi programm steuern.
Dabei schicke ich über die serielle schnittstelle strings die der Asuro erkennen soll und je nachdem entsprechend reagieren/antworten soll.
Allerdings klappts nicht so wie ich mir das vorstelle:

StatusLED(RED);
while (daten!="Bla") {
SerRead(daten,3,20);
Sleep(5);
}
StatusLED(GREEN);
SerPrint("Habs!");

Das ist der code wo er auf daten wartet, hab schon verschiedene varianten ausprobiert, allerdings klappen die nicht, nun zeig ich euch halt diese.
Wenn er Den String Bla empfangen hat solls weitergehen und die LED wird Grün.
Funktioniert leider nicht, obwohl ich den String "Bla" über mein eigenes programm gesendet hab, und auch über den asuroflash terminal.
Ich selbst bekomme den string aber im terminal zu sehen, also wird er schonmal gesendet.
Also wo liegt das problem?

Und kann ich die komponenten des asuros direkt ansteuern wenn ich etwas sende? Ich würde jetzt zb auf den string "motor an" warten, dann den motor an machen, oder kann man über die serielle schnittstelle einen direkten befehl an den µC senden das der motor angehn soll?

Gruß
Raz

Valen
21.07.2009, 18:49
Zum testen kontest du ihn die 'daten' variabelen gleich wieder aus sendenn ach das SerRead. Dammit weiss du auch was er emphangen hat. Er konnte sich auc verschluckt haben in deine befelh und nur die 'la' daten emphangen haben, und dan wartet er noch auf das letzten zeichen.

Besser ist das kompleten program zu posten, vielleicht steht dort den fehler drin.

p.s. Sleep(5) ist nicht notig. SerRead wird den gesamten zeit von 20 zeichen abwarten (wenn es den 3-en noch nicht empfangen hat) wonach es abbrichst und das probram weiter geht. (200 bits innerhalb 1 sekunde bei 2400 baud ist ungefehr 83msekunden )

Razzorhead
22.07.2009, 01:47
Das mit der daten variable ausgeben war nen guter tipp.
Dadurch sah ich das immer noch andere zeichen mitgesand wurden.
Aber ab minimum 5 zeichen war das problem gelöst.
Jetzt hab ich noch ein problem, ich kann nen string nicht mit einem char typ vergleichen, jedenfalls ist das resultat immer negativ :/
Und komischerweise kann ich auch keine string variablen erstellen( Hab nicht son plan von C , eher von delphi).
Ich muss wohl strings includen, allerdings kp wo ich die datei herkriege.
Naja kp wie ich nun weitermach. AsuroFlash macht mir eh probleme, total buggy :/ allein schon das man vorm compilen die datei immer saven muss, und man nicht mit strg+s saven kann x.x

Raz