Ver Mensaje Individual
  #2  
Antiguo 30-03-2011
harimuya harimuya is offline
Miembro
 
Registrado: ago 2003
Posts: 19
Reputación: 0
harimuya Va por buen camino
Cita:
Empezado por juanpa130679 Ver Mensaje
Hola, mi problema es el siguiente, a ver si alguien me puede ayudar porque estoy desesperado.

Resulta que estoy mandando informacion atraves del puerto USB a un procesador 'PIC', y estoy utilizando el componente Comport. Hasta ahora todo iba bien y podia establecer una comunicacion bidireccional entre Pc y Pic.

Mi problema surge cuando a la vez que mando al Pic una informacion con writeStr(), para activar salidas digiales del PIC, intento encender un led en el programa, o cambiar un label, o un edit....... no me hace nada hasta que termina de ejecutar el programita de encendido de leds. Necesito que a la vez que se activan las salidas digitales en el PIC , tb se me activen en mi PC.

Podeis ayudarme, o al menos orientarme para saber que puede estar pasando???

os adjunto el procediemiento de activacion secuencial las salidas..... que es donde me falla ahora mismo. Gracias.



////////////////////////////////////////////////////////////////////////////////////////
procedure TForm3.Button1Click(Sender: TObject);
var
parada:integer;
veces: Integer;
n:integer;

begin
n:=1;
for veces := 1 to 5 Do
begin

for parada := n to 5 Do
begin
Case parada of
1: begin
Form1.Comport1.WriteStr('*A01'+#13);
Form1.Comport1.WriteStr('*A11'+#13);
form1.ComPort1.Close;
Form3.mLED9.state:=lson;
form3.mLED10.State:=lson;
n:=n+1;
break;

end;

2: begin
espera(1);
Form1.Comport1.WriteStr('*A21'+#13);
Form1.Comport1.WriteStr('*A31'+#13);
Form1.ComPort1.Close;
Form3.mLED11.State:=lsOn;
Form3.mLED12.State:=lsOn;
n:=n+1;
break;
end;

3: begin
espera(1);
Form1.comport1.Open;
form1.ComPort1.Port:='Com6';
Form1.Comport1.WriteStr('*A41'+#13);
Form1.Comport1.WriteStr('*A51'+#13);
Form1.ComPort1.Close;
Form3.mLED14.State:=lsOn;
Form3.mLED13.State:=lsOn;
n:=n+1;
break;
end;
4: begin
espera(1);
Form1.comport1.Open;
form1.ComPort1.Port:='Com6';
Form1.ComPort1.WriteStr('*A61'+#13);
Form1.ComPort1.WriteStr('*A71'+#13);
form1.ComPort1.Close;
Form3.mled15.state:=lson;
form3.mled16.state:=lson;
n:=n+1;
break;
end;
5: begin
Espera(2);
Form1.comport1.Open;
form1.ComPort1.Port:='Com6';
FOrm1.ComPort1.WriteStr('*A00'+#13);
Form1.ComPort1.WriteStr('*A10'+#13);
Form1.ComPort1.WriteStr('*A20'+#13);
Form1.ComPort1.WriteStr('*A30'+#13);
Form1.ComPort1.WriteStr('*A40'+#13);
Form1.ComPort1.WriteStr('*A50'+#13);
Form1.ComPort1.WriteStr('*A60'+#13);
Form1.ComPort1.WriteStr('*A70'+#13);

Form3.mled9.state:=lsoff;
Form3.mled10.state:=lsoff;
Form3.mled11.state:=lsoff;
form3.mled12.state:=lsoff;
Form3.mled13.state:=lsoff;
form3.mled14.state:=lsoff;
Form3.mled15.state:=lsoff;
Form3.mled16.state:=lsoff;
break;
end;
end;
end;

end;
end;

////////////////////////////////////////////////////////////////////////////////


juanpa130679, llegastes a solucionar el problema que tenias ???, yo tengo un caso parecido el cual lo qhe publicado en el foro, tiene que terminar el programa para que me de la informacion que quiero, y yo lo necesito trabajar a traves e un For - End
A la espera de tus comentarios

Saludos
Responder Con Cita