Autor Tema: Ayuda!.Problemas con un programa simple  (Leído 5936 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Ayuda!.Problemas con un programa simple
« Respuesta #15 en: 04 de Diciembre de 2006, 14:13:15 »
Hola Joruji Que bien que vayas de gane con eso.

Pues una instruccion que limpia todo en PBP es CLEAR. Aunque como que me late que es otra cosa pero mientras puedes probar con eso.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado joruji

  • PIC10
  • *
  • Mensajes: 34
Re: Ayuda!.Problemas con un programa simple
« Respuesta #16 en: 05 de Diciembre de 2006, 06:12:10 »
Lo probaré cuando pueda,  está semana me parece que no podré hacer nada. De todas maneras lo del CLEAR me da a mí también que no funcionará. El CLEAR pone todas las variables a cero, no?

No se que podrá ser. Mira que es extraño que funcione, pero sólo durante cinco instrucciones..., lo mejor de todo es que a la sexta instrucción no responde, pero si insisto hasta ocho veces más (siempre ocho + después de la sexta), obtengo una respuesta del PIC (que puede o no ser la respuesta correcta). A partir de ahí es como si el PIC se muriera, hasta que reseteo el circuito y vuelve a funcionar.

Para que lo veas de manera más gráfica:

Envío por rs232
XRER1AB ------------- EL RELE SE ABRE
XRER1CE ------------- EL RELE SE CIERRA
XRER1AB ------------- EL RELE SE ABRE
XRER1CE ------------- EL RELE SE CIERRA
XRER1AB ------------- EL RELE SE ABRE
XRER1CE ------------- EL RELE NO RESPONDE
XRER1CE 8 veces + ------------- EL RELE ENTONCES SE CIERRA
A partir de aquí envíe lo que le envíe las veces que sea, el PIC ya no responde más.

¿Qué cosa más extraña no?
En fin, acepto todo tipo de sugerencia para ir probando. Ya os iré contando lo que ocurre.

Un saludo.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Ayuda!.Problemas con un programa simple
« Respuesta #17 en: 05 de Diciembre de 2006, 16:03:43 »
Pues es dificil dar un diagnostico sin ver el cuerpo del enfermito :) osea si pusieras el codigo completo y el diagrama, lo probariamos o le dariamos un vistazo para tratar de Diagnosticarlo

Suerte
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado joruji

  • PIC10
  • *
  • Mensajes: 34
Re: Ayuda!.Problemas con un programa simple
« Respuesta #18 en: 06 de Diciembre de 2006, 09:27:53 »
Bueno, éste código todavía no lo he probado ya que lo he modificado un poquitín respecto al anterior. Solo le tocado un poco la parte de los goto y gosub, así es posible que continue haciendo lo mismo, en cualquier caso aquí está:

 
Código: [Seleccionar]
include "bs2defs.bas"
define OSC 8                     
define LOADER_USED 1
'ADCON1=7

TRISD = 255
TRISB = 0

rele_out1  VAR PORTB.0
rele_out2  VAR PORTB.2
alarm  VAR PORTB.4
RX var portd.4
TX var portd.5
reles var byte[2]
rele1 var byte[2]
rele2 var byte[2]
rele3 var byte[2]
abrir var byte[2]
 
comp var byte[2]
rele var byte[2]
abre var byte[2]
ntelef var byte[11]
i var byte
 
portd=0

INICIO:

RELES[0]="R" : RELES[1]="E"
RELE1[0]="R" : RELE1[1]="1"
RELE2[0]="R" : RELE2[1]="2"
RELE3[0]="R" : RELE3[1]="3"
ABRIR[0]="A" : ABRIR[1]="B"
 
'serin2 RX,84,1000,INICIO,[wait("+CMT"),wait("+"),str ntelef\11,wait("X"),str comp\2]
serin2 RX,84,1000,INICIO,[wait("X"),str comp\2]
COMPARA:
 for i=0 to 1
  if comp[i] <> reles[i] then
    goto error
  endif
 next i
 serin2 RX,84, [str rele\2]
 for i=0 to 1
  if rele[i] <> rele1[i] then
    goto rel2
  endif
 next i
 serin2 RX,84, [str abre\2]
 for i=0 to 1
  if abre[i] <> abrir[i] then
    gosub cerrar1
   else
    gosub abrir1
  endif
 next i 

rel2:
 for i=0 to 1
  if rele[i] <> rele2[i] then
    goto rel3
  endif
 next i
 serin2 RX,84, [str abre\2]   
 for i=0 to 1
  if abre[i] <> abrir[i] then
    gosub cerrar2
   else
    gosub abrir2
  endif
 next i
 
rel3:
 for i=0 to 1
  if rele[i] <> rele2[i] then
    goto error
  endif
 next i       
 
goto inicio
 
abrir1:
high rele_out1
return
cerrar1:
low rele_out1
return

abrir2:
high rele_out2
return
cerrar2:
low rele_out2
return

error:
high alarm
pause 500
low  alarm
pause 500
goto inicio

Un saludo.

Desconectado joruji

  • PIC10
  • *
  • Mensajes: 34
Re: Ayuda!.Problemas con un programa simple
« Respuesta #19 en: 11 de Diciembre de 2006, 08:38:17 »
Por fin he conseguido que funcione!. He cambiado todos los gosubs por gotos, y ahora ya va todo como debe ser, ya no se cuelga ni nada...

Un saludo

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Ayuda!.Problemas con un programa simple
« Respuesta #20 en: 11 de Diciembre de 2006, 12:41:50 »
A pues que bien... quien iba a pensar que por ahi estaba el error, FELICIDADES :-/ y a terminarlo!!
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."


 

anything