Autor Tema: bug printf/puts?  (Leído 17027 veces)

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

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: bug printf/puts?
« Respuesta #60 en: 30 de Abril de 2014, 18:24:35 »
en el ejemplo que te puse funciona bien, puedes verlo con el proteus, cuando le envías una cadena, el pic te va a responder "recibi:" y después la cadena que le enviaste. como tienes conectados tus 3 micros?

por lo que entiendo un pic1 le envía datos al pic2, y este a su vez le envía datos al arduino, pero para el pic2 tienes definidos 2 puertos serie? ya que no puedes enviar datos entre mas de 2 dispositivos usando un solo puerto rs232
"Nada es imposible, no si puedes imaginarlo"

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #61 en: 30 de Abril de 2014, 19:32:36 »
en el ejemplo que te puse funciona bien, puedes verlo con el proteus, cuando le envías una cadena, el pic te va a responder "recibi:" y después la cadena que le enviaste. como tienes conectados tus 3 micros?

por lo que entiendo un pic1 le envía datos al pic2, y este a su vez le envía datos al arduino, pero para el pic2 tienes definidos 2 puertos serie? ya que no puedes enviar datos entre mas de 2 dispositivos usando un solo puerto rs232

No, es decir el pic1 le envia un dato via puerto serie al pic2 que este l recibe por tx, entonces éste pic2 por rx envia datos al arduino. Simplemente es un circuito sencillo para ver si el fallo eran ls 3,3V que slo puede dar el arduino por su puerto serie. Pero parece ser que entre el pic1 y el pic2 las interrupciones andan mal.

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #62 en: 30 de Abril de 2014, 19:39:43 »
Algno de vosotros me podría dar el archiv .hex del codigo compilado??? Es que a mi hay veces que la función printf no me va.. eos a qué puede ser debido?? (en cambio con putc enviando caracter a caracter si me hace bien) pero es raro que con una funcion asi pues no me haga nada....

Si me pasa eso con la función printf tampoco es de estrañar que la interrupcion serie haga cosas raras... y también si teneis algún link o algo para bajrme el CCS 5 enviadme por fabor!! necesito probar cosas.

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #63 en: 01 de Mayo de 2014, 08:43:43 »
1º- Si yo pongo en el programa un LED para que se encienda cuando se produce una interrupción serie... Debería éste led encenderse cuando inicio el pic (depsués de un reset). Es decir cuando se enciende el pic despues de apagado o se reinicia debería éste led encenderse no? es lo que me ocurre... se enciende cuando reinicio el pic, entra en la interrupción serie después de un reset. Es normal no?

2º- Luego creo que uno de los pics puede estar roto ya que cuando conecto uno junto con el otro el programa hace cosas raras. Los leds tienen retardos distintos y demás. Solo comparten alimentación así que supongo que ese pic puede estar defectuoso no? Pero cuando conecto uno de ellos que es el que me parece que es el mas fiable SOLO el programa anda bien. El led hace el retardo programado y demás.

Muchas gracias por vuestras respuestas.


yo tengo definido ésto antes del void main()

Código: [Seleccionar]
#INT_RDA

void INT_UART() {


trama_entrada[P_W]=getc();

output_high(PIN_B0);
delay_ms(2000);
output_low(PIN_B0);

if(trama_entrada[P_W]=='\r'){
P_W=0;
flag_final=1;
}

else{
P_W++;
}

}

« Última modificación: 01 de Mayo de 2014, 08:50:27 por Prototipe88 »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: bug printf/puts?
« Respuesta #64 en: 01 de Mayo de 2014, 09:56:54 »
Que el led se encienda cuando inicias no quiere decir que ocurra la interrupción, puede ser simplemente que no lo apagas al iniciar.
Los pines de salida pueden tomar valores aleatorios en un inicio, por lo tanto la regla de oro es apagarlos antes de habilitar interrupciones y demás tareas del PIC.

Respecto a lo otro, repito mi pedido, pon los esquemáticos de como estas conectado todo y podremos ayudarte mejor...
Aunque sea dibújalos a mano alzada, muchos al hacerlo se dieron cuenta de sus propios errores...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #65 en: 01 de Mayo de 2014, 09:58:05 »
Que el led se encienda cuando inicias no quiere decir que ocurra la interrupción, puede ser simplemente que no lo apagas al iniciar.
Los pines de salida pueden tomar valores aleatorios en un inicio, por lo tanto la regla de oro es apagarlos antes de habilitar interrupciones y demás tareas del PIC.

Respecto a lo otro, repito mi pedido, pon los esquemáticos de como estas conectado todo y podremos ayudarte mejor...
Aunque sea dibújalos a mano alzada, muchos al hacerlo se dieron cuenta de sus propios errores...

El led lo lo apago justo antes de abilitar la interrupcion!! eso es lo extraño Encima seé que esta entrando en la interrupcion serie al iniciar porque realiza el delay que le indico!! :(

En cuanto pueda colgo los esquematicos
« Última modificación: 01 de Mayo de 2014, 10:03:19 por Prototipe88 »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: bug printf/puts?
« Respuesta #66 en: 01 de Mayo de 2014, 10:07:27 »
Una vez a mi sin querer se me puentearon los pines tx y rx del pic, y me hacia cosas parecidas...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #67 en: 01 de Mayo de 2014, 10:09:40 »
Una vez a mi sin querer se me puentearon los pines tx y rx del pic, y me hacia cosas parecidas...

es posible que sin querer alguna vez puentera los tx y rx de los pic... por ejemplo conecte el RX1 del PIC1 en RX2 del PIC2 y TX1 del PIC1 en RX2 del PIC2.... puede ser que se averiraran??

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: bug printf/puts?
« Respuesta #68 en: 01 de Mayo de 2014, 10:20:01 »
Estas usándolos directo, sin conversor??
Alimentas los pics con la misma fuente DC?

Mas que nunca deberías poner el esquemático que usas !!
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #69 en: 01 de Mayo de 2014, 11:23:37 »
El problema que tengo es que las funciones strcat y sprintf andan mal en mi programa. Pasa algo con ellas. ¿Puedo utilizar otras funciones para pasar un valor INT a STRING y pode concatenar?

Necesito que el valor del ADC pase a string de 4 caracteres. Por ejemplo si valor_adc=23 quiero que en string_valor_adc=0023. el valor_adc lo he definido como un long ya que el adc del pic es de 10 bits.

Luego necesito saber un método para concatenar strings sin utilizar strcat.

« Última modificación: 07 de Mayo de 2014, 09:25:26 por Prototipe88 »

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: bug printf/puts?
« Respuesta #70 en: 07 de Mayo de 2014, 10:57:40 »
creo que el sprintf debería funcionar, pero como alternativa podrías usar la función itoa para convertir un entero a una cadena.

para concatenar al momento de enviar los datos puedes hacerlo dentro de la función de printf.
"Nada es imposible, no si puedes imaginarlo"

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #71 en: 07 de Mayo de 2014, 13:21:43 »
creo que el sprintf debería funcionar, pero como alternativa podrías usar la función itoa para convertir un entero a una cadena.

para concatenar al momento de enviar los datos puedes hacerlo dentro de la función de printf.


rivale al final resultó ser problema de la version. Ni con la 5.012 me funcionaba. He tenido que bajarme la 5.015 con esta version tengo poquisimos problemas ahora respecto a las funciones. Lo único que tengo problemas es en lo siguiente. que cuando cambio de tipo de solicitud el micro se queda como tonto y no me la reconoce. solo me reconoce la del primer tipo que le envio.

Si te adjunto el código de nuevo y te explico más concretamente lo que me ocurre podrías hecharle un vistazo? Es que no veo esto ya. Y creo que no es problema del compilador ahora.

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: bug printf/puts?
« Respuesta #72 en: 07 de Mayo de 2014, 14:08:27 »
puede que no reinicies algún contador y no lea correctamente el comando siguiente. pega tu código para darle un vistazo.
Saludos
"Nada es imposible, no si puedes imaginarlo"

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: bug printf/puts?
« Respuesta #73 en: 08 de Mayo de 2014, 05:18:38 »
puede que no reinicies algún contador y no lea correctamente el comando siguiente. pega tu código para darle un vistazo.
Saludos

El problema con éste programa ya está solucionado. El problema era que al compilador no le gusta o no se entera del espacio total que hay que guardar cuando se define algo así   char cadena[]="cadena";. Al cambiar eso por ésto char cadena[7]="cadena"; el programa anda perfecto.

Conclusión, he tenido que cambiar a la versión CCS 5.025 y definir más concretamente las variables que voy a utilizar. Así el programa me ha andado bien :) Por fin!

Podría consultarte una cosa sobre MAX485 entre pics?

Quiero conectar tres pics. El pic principal interroga a los otros dos enviandoles una direccion y estos responden si esa direccion coincide con la suya.

Yo he conectado estos tres pics tal cual dice en las especificaciones. Pero solo me responde uno de ellos, el otro no me responde. Si vuelvo a conectar y desconectar todo a veces me responde el segundo pic pero el primero ya no.

¿Hay que elaborar algún tipo de protocolo para que cada MAX485 sepa cual es su función? o simplemente cambiando el estado de los pines RE/DE ya hay suficiente (porque ésto es lo que realizo en función de si escribo o escucho)?
« Última modificación: 08 de Mayo de 2014, 09:26:00 por Prototipe88 »

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: bug printf/puts?
« Respuesta #74 en: 08 de Mayo de 2014, 11:27:45 »
haa, que bueno que ya se solucionó. aunque es raro que no te permita definir así las cadenas.

en cuanto a tu otra pregunta, te recomiendo abrir un tema nuevo porque es un tema diferente
"Nada es imposible, no si puedes imaginarlo"