Hallo Leute,
wie stell ich es an (aufbau einer schnellen Schleife) das mein Servo immer Aktuallisiert wird ohne immer di eZeit zu verlieren beim RS232 Eingang?
Mein Programmcode bis jetzt "easy"
Code:
'****************************************************************
'* Name : SERVO via RS232 *
'* Author : Sommer Ulli *
'* Notice : Copyright (c) 2005 Sommer Ulli *
'* : All Rights Reserved *
'* Date : 11.04.2005 *
'* Version : 1.0 *
'* Notes : PROTON+ Compiler *
'* : *
'****************************************************************
Include "PROTON_4.INC"
POS1 var Word
last var Word
count1 var Word
SERIALL:
HSERIN 500,MOVE,[Wait ("PIC2,"),dec POS1,10,13]
last = POS1 * 4
goto MOVE
MOVE:
Count1 = 0
for Count1 = 0 to 40
delayms 5
low PORTD.0
SERVO PORTD.2,800 + last
next Count1
high PORTD.0
goto SERIALL]
Also ich Warte bis von meinen PC-Programm PIC2, kommt, lese dananach die Position und gehe dann zum Servo stellen über.
Der Bug ist der das die Servo Rutine immer laufen müsste um einen hohen Haltemoment am Servo zu bekommen.
Grund ist der, das der Servo Befehl in dieser Schleife 40 mal ausgeführt wird und somit 40 * 5ms lang den Impulse stehen lässt dach Seriell einlesen will (da geht der Imp. auf Ausgang auf Low da keine durchlauf) und mir somit der Servo einbricht (keine ausregelung da kein Impulse).
Wie schreibe ich eine Schleife oder mache ich das ganze das dies nicht passiert? Ich sende vom PC mit var Zeiten 5 - 1Sec kein Problem desto schneller wird das ganze aber ich will ja damit nicht den Programmdurchlauf davon abhängig machen.
Ich hoffe ich hab es einigermassen erklären können.
Danke für eue Hilfe Ulli
Lesezeichen