PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MULTITASKING???c-control is doch streng sequenziel



hoer173
09.04.2004, 00:43
wie ihr wisst funkt mein antireb jetzt mit den beiden schrittmotoren über rs232...

jetzt frag ich mich nur da das alles auf byteport[1] liegt ob wenn ich grade den roboter fahrbeehle gesendet hab er die grade ausführt , es möglich ist auf port 9-16 parallel dazu befehle ausführen die auch per rs232 gesendet werden... und dies alles halt während der fahrt

also ganz einfach erklärt:
deer roboter hat n fahrbefehl und steurt sein ziel an. während der fahrt will ich vom computer aus noch nebenbei den cameraturm steuern (zoom,hoch runter, links rechts)

ist es denn auch möglich anstand einen byteport zu definieren mit 8 digitalen a/e

einen mit 2 ports oder 3 oder 4 definieren?


danke

recycle
09.04.2004, 03:00
jetzt frag ich mich nur da das alles auf byteport[1] liegt ob wenn ich grade den roboter fahrbeehle gesendet hab er die grade ausführt , es möglich ist auf port 9-16 parallel dazu befehle ausführen die auch per rs232 gesendet werden... und dies alles halt während der fahrt


Multitasking kann die C-Control sicherlich nicht, mehrere Befehle wirklich parallel abarbeiten klappt also nicht.

Aber du hast in deinem Programm für die Schrittmotoren ja "pause" - Befehle drin, also Zeiten in denen der Controller nichts tut.
Statt zu warten und Däumchen zu drehen, könnte er da auch was anderes machen, z.B. deinen Kamera-Turm drehen oder Befehle von der seriellen Schnittstelle entgegennehmen.
Wenn du das zeitlich vernünftig miteinander synchronisiert bekommst sollte der Controller es auch nacheinander so hinbekommen, dass der Roboter fährt und (fast) gleichzeitig den Turm dreht.

Ich vermute am besten klappt es, wenn du irgendwas in dem Ablauf auf einen Interrupt legst, denn auf Befehle von der RS232 warten und gleichzeitig fahren geht nicht.




ist es denn auch möglich anstand einen byteport zu definieren mit 8 digitalen a/e

einen mit 2 ports oder 3 oder 4 definieren?


Irgendwie kommt mir diese Frage ziemlich bekannt vor. Könnte es eventuell sein, dass du die schon mal gestellt hast, und nur den richtigen von deinen 99 1/2 Threads nicht mehr wieder findest? ;-)

Mit einem kurzen Blick in die C-Basic Online-Hilfe könntest du die Antwort schon haben.

chango
09.04.2004, 09:12
Eine weitere erprobte Möglichkeit, ist der Anschluss einer weiteren C-Control und durch eine Art Multithreading wird dein Roboter viel leistungsfähiger.
Das erste Modul ist für die Fortbewegung zuständig während das zweite für die Ansteuerung der Stellglieder zuständig ist.

hoer173
09.04.2004, 11:42
ja aber ich wollt ghern das an einer c control machen... wie müsste ich das denn mchen das wenne r die pause macht n 2ten befehel ausführt??

kannst du mir mal n beispiel code zeigeen