señores despues de saludarles les escribo ya que nesecito ayuda con un proyecto que esto tratando de hacer en lenguaje pic c , como estoy comensando con este lenguale se me hace bastate dificil ya que yo solo programo en ensamblador y lo poco que se de "c" es lo que he aprendidido con ejemplos que he visto en este foro .
de antemano les doy las gracias por cualquie ayuda
:)con que me expliques que hace en "si" el siguente codigo te lo agradeceria enormemente.
la cuestion es que tengo que enviar por en puerto serial a 19600 bps una cadena de
30 byte y a esta cadena calcularle el " fletcher checksum"
ejemplo:
00 00 00 00 00 00 00 00 00 00 00 00... bc cd
---------dato cadena 30 byte-------
pero tengo la rutina el lenguaje c normal
si pudieras traducirlo a pic c o por lo menos explicar que dice para yo tratar de hacer una rutina similar
saludos dsde isla de margarita venezuela johan mata alvarez
tecnico_pic
;//////////////////////////////////////////////
//fletcher checksum
;/////////////////////////////////////////////
/*
* operator fletcher_encode
*/
fletcher_encode (buffer,count)
unsigned char* buffer;
long count;
{
int i;
unsigned char c0 = 0;
unsigned char c1 = 0;
*(buffer + count - 1) = 0;
*(buffer + count - 2) = 0;
for ( i=0; i< count;i++)
{
c0 = c0 + *(buffer + i);
c1 = c1 + c0 ;
}
*(buffer + count - 2 = c0 - c1 ;
*(buffer + count - 1 = c1 - 2*c0 ;
}
/*
* operator fletcher_decode
*/
long fletcher_decode (buffer,count )
unsigned char* buffer;
long count;
{
long result= 0;
int i;
unsigned char c0=0;
unsigned char c1=0;
for(i= 0 ; i < count;i++)
{
c0= c0 + *(buffer + i);
c1= c1 + c0 ;
}
return ( (long) ( c0 + c1));