Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problemas con comport (https://www.clubdelphi.com/foros/showthread.php?t=37314)

juanpa130679 09-11-2006 12:47:00

problemas con comport
 
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;

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

harimuya 30-03-2011 22:34:53

Cita:

Empezado por juanpa130679 (Mensaje 166448)
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


La franja horaria es GMT +2. Ahora son las 06:11:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi