Autor Tema: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|  (Leído 1820 veces)

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

Desconectado willie_rosario_salsa

  • PIC12
  • **
  • Mensajes: 75
Hola expertos,

Gracias a todos por la ayuda brindada en estos días, ya he resuelto la mayoria de los problemas presentados pero una vez más acudo a ustedes para consultar e identificar el error que se me presenta:

Una de las interrupciones seriales que uso funciona perfecto pero cuando la modifico a 2400 bps (no la debo cambiar) me deja de funcionar y el ISIS me bota los errores de la imagen


La sección de código que tengo es la siguiente:

Código: [Seleccionar]
#int_EXT
void ext_isr()
{
      char  dato_in[15]; //buffer temporal
      fgets(dato_in,com_soft); //guarda en dato_in
      fprintf(com_soft, "%s%s\n\r" ,"Dato recibido: ", dato_in); //imprime dato recibido
      delay_ms(500);  //delay wathever   
}

La única variante que realizo es poner baud=2400 en el transmisor y en el receptor, pero no encuentro por qué razón no captura los datos con este baudaje  :? :? :?...

Agradeceré su valiosa ayuda
"Es chévere ser grande, pero... Más grande es ser chévere." --- Héctor Lavoe.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #1 en: 21 de Mayo de 2010, 04:33:55 »
Entiendo que esperas 15 bytes

Pero para que el retardo de 500ms???

1/2400=0.4166ms x 10(1 startb+8b+1stopb)=4.166msX 15 bytes= 62.5ms en recibir 15 bytes seguidos

Si los bytes los recibes seguidos , creo que sobreescribe algun registro relacionado a los 500ms.

---
Si no es asi , podría ser un capricho del proteus

Es lo que se me ocurre por el momento.


Saludos!
---------------------------
Re-analizando la imagen

El warning te lo marca cada 4.1151ms~4.16ms lo que es cada byte recibido,da menor al calculo por el startbit ^^

mmmm

Parece error de proteus.

QUe tipo de reloj usas y a que velocidad????

Pero el proteus te marca error????
O sigue el programa solo enviandote avisos de ese tipo?????????????

No veo que diga ERROR


Se para la simulación???

No estoy muy familiarizado con el fgets

pero no veo a que registro pasas los datos

value = fgets (string, stream)
« Última modificación: 21 de Mayo de 2010, 04:53:15 por AKENAFAB »

Desconectado willie_rosario_salsa

  • PIC12
  • **
  • Mensajes: 75
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #2 en: 21 de Mayo de 2010, 10:55:24 »
Código: [Seleccionar]
Pero para que el retardo de 500ms???En realidad después probé quitando este delay, puse un break de proteus justo despues de fgets para saber que datos se recibieron, pero sigue igual.

Código: [Seleccionar]
QUe tipo de reloj usas y a que velocidad????Estoy utilizando en ambos micros Fuse HS - 20 MHz y no se si este de pronto sea el motivo.

Código: [Seleccionar]
Pero el proteus te marca error????No marca error, pero el log de eventos llega a casi 8000 y se detiene, además al marcar estos warnings el pic se cuelga.

Código: [Seleccionar]
pero no veo a que registro pasas los datosCon fgets(dato_in,com_soft) lo que hago es tomar por el puerto com_soft (que es el virtual) y guardarlo en la variable local llamada "dato_in".

"Es chévere ser grande, pero... Más grande es ser chévere." --- Héctor Lavoe.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #3 en: 21 de Mayo de 2010, 13:11:03 »
Para quitar los warnings

Vas a Debug--Configure Diagnostic-Seleccionas el pic, en la parte de warning deshabilitas.

Debe fluir mucho mejor con eso.

Desconectado Alcaparrones

  • PIC10
  • *
  • Mensajes: 17
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #4 en: 21 de Mayo de 2010, 13:18:39 »
¿La velocidad serial que usabas antes era mayor de 2400 baudios? Quizás esa velocidad es demasiado lenta y la interrupción te vuelve a saltar antes de que termine el trabajo.

Desconectado willie_rosario_salsa

  • PIC12
  • **
  • Mensajes: 75
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #5 en: 21 de Mayo de 2010, 21:42:58 »
Código: [Seleccionar]
Para quitar los warnings

Vas a Debug--Configure Diagnostic-Seleccionas el pic, en la parte de warning deshabilitas.

Debe fluir mucho mejor con eso.

Na nai, es verdad que los puedo obviar, pero el problema está en que el sistema no funciona.

Código: [Seleccionar]
Quizás esa velocidad es demasiado lenta y la interrupción te vuelve a saltar antes de que termine el trabajo.La verdad creo que el tema va por ahí con el oscilador y la velocidad..

Quisiera poner otro cristal para saber qué pasa, puede ser el SPBRG a lo mejor  :?
"Es chévere ser grande, pero... Más grande es ser chévere." --- Héctor Lavoe.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #6 en: 21 de Mayo de 2010, 22:32:29 »
Esta raro , porque es una velocidad lenta no debe haber problema con esos 20MHz.

Pero eso no es lo que te indica la advertencia,solo dice que se sobrescribe un registro , hay que checar bien la direccion y a que variable pertenece.

Probaste con el Virtual terminal para revisar el flujo de datos??

Desconectado willie_rosario_salsa

  • PIC12
  • **
  • Mensajes: 75
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #7 en: 21 de Mayo de 2010, 23:06:03 »
Claro, esa es la herramienta que uso para ver el trafico de datos.

La pregunta es por qué funciona con 9600 perfecto y con 2400 no..

"Es chévere ser grande, pero... Más grande es ser chévere." --- Héctor Lavoe.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #8 en: 22 de Mayo de 2010, 12:17:11 »
Hola.

Has probado asignar un Flag de aviso dentro de la interrupción y usar la función fprintf() en el main?

Saludos
El papel lo aguanta todo

Desconectado willie_rosario_salsa

  • PIC12
  • **
  • Mensajes: 75
Re: Al cambiar el RB0 serial a baud=2400 me saltan errores... Una mano plis |o|
« Respuesta #9 en: 24 de Mayo de 2010, 13:11:09 »
Al parecer era el oscilador de 20 MHz que no podía generar tramas a 2400 sin errores y esto me causaba problemas.

Tuve que cambiarlo a 4 MHz y funciona bien, voy a ir intentar subirlo a 8 MHz para ver si no causa conflictos, pero hasta ahora todo funciona bien  :-/ :-/ :-/

Gracias
"Es chévere ser grande, pero... Más grande es ser chévere." --- Héctor Lavoe.