TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: tito_mcpato en 17 de Mayo de 2010, 13:16:46

Título: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
Publicado por: tito_mcpato en 17 de Mayo de 2010, 13:16:46
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... :?
Título: Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
Publicado por: BrunoF en 17 de Mayo de 2010, 13:28:17
Hola. Y de que tamaño es la variable cont? y buffer?

Saludos.
Título: Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
Publicado por: MLO__ 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
Título: Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
Publicado por: tito_mcpato 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....
Título: Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
Publicado por: tito_mcpato 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...
Título: Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
Publicado por: tito_mcpato en 17 de Mayo de 2010, 18:35:08
hola MLO... te cuento que  ya funciono con lo que me dijiste... gracias amigo....
Título: Re: ayuda de llenar por puerto serial un bufer de 822 bytes en un pic 18f8720
Publicado por: MLO__ en 17 de Mayo de 2010, 18:52:22
Ok.

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

Saludos