Autor Tema: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720  (Leído 1445 veces)

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

Desconectado tito_mcpato

  • PIC10
  • *
  • Mensajes: 9
amigos necesito ayuda nuevamente de ustedes.... buenop tengo un problema al llenar un bufer de 822 bytes en mi pic 18f8720... en datos de 20 bytes lo llena sin problema alguno y funciona de maravilla, pero cuando envio serial mente una trama de 822 bytes no me toma la trama completa solo me toma 45 bytes de los 822...

esta es la funcion que estoy utilizando..

#int_RDA
void  RDA_isr(void)
{
   c=getc();
   buffer[cont++]=c;
   if(c==0xF2){
      cont=0;
      flg_mensaje=1;
   }
     
}


y esta es la trama con la que me debe llenar el bufer...


F1 30 32 31 44 2C 4F 4B 2C 31 2C 34 32 36 35 36 41 36 35 36 41 43 31 45 45 36 36 33 43 37 42 32 46 36 30 33 35 31 33 32
45 36 34 46 38 38 33 41 41 36 34 46 46 36 31 39 33 36 34 46 46 33 35 39 33 36 36 46 43 36 33 41 43 36 31 43 39 44 33 37
45 36 37 43 36 31 35 43 32 36 34 43 36 45 35 42 36 36 34 43 36 32 37 37 37 36 31 44 41 31 42 45 45 36 37 44 41 45 42 42
41 36 37 44 45 46 37 43 45 36 36 44 45 38 31 30 45 36 36 44 32 35 35 36 42 36 31 44 32 30 35 34 45 36 37 44 36 33 39 32
32 36 36 41 41 34 42 38 36 36 37 41 46 45 33 32 45 36 31 42 34 44 33 39 45 36 31 38 39 37 31 45 33 36 31 37 30 44 45 38
46 36 35 37 30 43 30 38 41 36 35 37 35 37 32 46 33 36 35 34 39 30 45 39 46 36 35 34 39 31 34 34 33 36 30 34 39 43 38 32
42 36 34 34 43 38 45 39 36 36 35 34 43 31 30 43 46 36 31 35 39 36 36 31 38 36 34 35 43 39 41 32 32 36 34 35 43 42 32 30
42 36 34 35 43 33 34 46 42 36 34 32 46 31 38 38 42 36 34 32 46 41 30 33 45 36 34 32 46 44 38 36 46 36 37 32 35 42 43 30
42 36 37 33 38 39 32 42 32 36 34 33 43 39 45 46 46 36 37 36 34 36 41 37 38 36 38 37 45 36 39 37 39 37 35 37 31 37 33 37
46 37 42 36 31 37 35 36 43 37 31 36 33 37 44 36 30 34 31 37 42 37 38 36 32 36 31 34 44 36 30 36 32 34 31 34 41 37 38 36
30 34 37 34 44 36 31 36 32 34 35 34 38 34 31 34 39 37 38 36 31 37 35 37 43 37 42 36 35 37 45 36 38 36 34 37 34 37 45 36
43 36 45 37 41 36 37 37 43 34 44 36 30 36 31 34 44 36 30 36 36 37 34 36 33 34 31 36 30 36 36 37 42 36 44 34 45 36 39 37
32 36 31 36 33 37 34 36 32 36 36 36 36 34 31 36 45 34 32 36 43 37 35 37 43 37 42 36 35 37 45 36 38 36 34 36 37 37 34 36
32 36 46 37 39 37 37 36 33 36 34 36 36 37 37 36 42 37 34 37 39 36 44 36 34 36 41 36 42 37 37 37 45 36 41 36 37 37 36 36
36 37 35 36 42 36 42 37 41 36 38 36 43 36 45 37 38 37 31 36 31 36 33 37 43 37 42 36 35 36 34 37 31 36 37 36 30 36 39 36
33 36 44 36 37 37 36 36 39 36 31 37 39 36 42 36 42 36 38 36 36 37 31 36 35 37 34 37 38 36 39 36 37 37 34 36 34 36 34 36
30 36 44 36 34 36 34 37 46 37 37 36 35 37 33 37 41 36 38 37 45 37 33 36 38 36 42 37 41 36 45 36 42 37 45 36 31 37 35 36
43 36 37 37 34 37 30 37 31 37 31 37 36 34 34 37 30 37 41 34 38 34 36 34 46 37 43 36 39 34 31 37 37 34 35 36 33 37 43 36
45 36 46 37 37 34 35 37 30 37 44 34 45 34 37 36 45 34 32 37 36 37 32 34 38 37 43 34 41 34 36 34 42 37 38 37 34 36 37 37
43 36 45 36 43 36 32 37 41 37 30 34 42 37 32 37 30 37 41 34 39 34 30 34 38 34 33 34 41 34 31 37 33 37 44 36 45 34 32 36
39 34 37 37 43 36 33 36 37 37 44 36 38 35 36 36 32 35 30 31 33 F2


si tengo un error en mi funcion por favor pueden corregirme... o si tiene una que funcione podrian decrimela para podre salir de mi frustracion... :?

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
« Respuesta #1 en: 17 de Mayo de 2010, 13:28:17 »
Hola. Y de que tamaño es la variable cont? y buffer?

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
« Respuesta #2 en: 17 de Mayo de 2010, 13:30:40 »
Hola.

La variable cont debe ser int16 y el buffer debe tener el tamaño adecuado. Si dentro del envío esta 0xF2 (en la posición 45) te corta el envío.

La función esta muy bien ... no veo que sea el problema por ahí. Prueba poner a cero a c antes de recibir el byte.

Saludos
El papel lo aguanta todo

Desconectado tito_mcpato

  • PIC10
  • *
  • Mensajes: 9
Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
« Respuesta #3 en: 17 de Mayo de 2010, 15:35:49 »
oki amigo MLO yo tenia cont de 8 pero le cambiare a 16 no se si sera por eso pero ya veremos hare las pruebas... si tiene mas sugerencias diganmelas...   amigo bruno el cont que tenia es de 8 y el buffer de 900 solo que cuando ve el F2 que es el ultimo byte ahi se corta... ese seria el final....

Desconectado tito_mcpato

  • PIC10
  • *
  • Mensajes: 9
Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
« Respuesta #4 en: 17 de Mayo de 2010, 17:47:28 »
amigo MLO ahora me reciben 256 bytes poniendo en el cont 16 el bufer lo seteo para 900 bytes... no se que mas podria cambiar o agregar...

Desconectado tito_mcpato

  • PIC10
  • *
  • Mensajes: 9
Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
« Respuesta #5 en: 17 de Mayo de 2010, 18:35:08 »
hola MLO... te cuento que  ya funciono con lo que me dijiste... gracias amigo....

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
« Respuesta #6 en: 17 de Mayo de 2010, 18:52:22 »
Ok.

Otro cliente satisfecho  :-/ :-/ :-/ :-/

Saludos
El papel lo aguanta todo


 

anything