TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: javv en 15 de Junio de 2007, 13:38:25
-
Buena a todos:
Necesitaria una rutina crc o checksum ó algun ejemplo, quiero mandar una trama de 1 pic maestro a varios pics esclavos y que estos reciban los datos en un buffer para posteriormente tratarlos.
Gracias..
-
Buena a todos:
Necesitaria una rutina crc o checksum ó algun ejemplo, quiero mandar una trama de 1 pic maestro a varios pics esclavos y que estos reciban los datos en un buffer para posteriormente tratarlos.
Gracias..
En la página de Microchip hay un application note que permite calcular el crc en assembler.
-
gracias por responder, voy a mirarlo, pero me gustaria que fuera en c, ya que asm me es un poco mas complicado.
Un saludo.
-
Que tal javv,
Existen varios tipos de CRC, pero el manual de Series 6000 S6500/S6550 Configuration and Host Protocol v_3.08 de la pagina de texas instruments te puede servir, especificamente en la pagina 16 viene la rutina para calcular un CRC16 en C.
el link es:
http://www.ti.com/rfid/shtml/prod-readers-RI-STU-650A.shtml
Saludos.
Elreypic.
-
muchas gracias elreypic2,
voy a mirarla y a ver que saco en claro,
Un saludo y gracias por la ayuda...
-
Este es el codigo que hay en esa pagina, pero para generar el crc de los datos que quiero enviar no sé como hacerlo? y despues para decodificarlo? hay que guardar cada dato en una variable DATA y enviar . y luego en el receptor volver a guardar en data? no sé muy bien como va esta subrutina,, y alguno me la puede esplicar un poco Os lo agaradeceria.
2.5 CRC16 Calculation Algorithm
Polynomial: x16 + x12 + x5 + 1 Þ CRC_POLYNOM = 0x8408;
Start Value: 0xFFFF Þ CRC_PRESET = 0xFFFF;
C-Example:
unsigned internal CRC = CRC_PRESET;
for (i = 0; i < cnt; i++) /* cnt = number of protocol bytes without CRC */
{
crc ^= DATA;
for (j = 0; j < 8; j++)
{
if (crc & 0x0001)
crc = (crc >> 1) ^ CRC_POLYNOM;
else
crc = (crc >> 1);
}
}
Un saludo y gracias
-
Poniendo una busqueda amplia en el buscador del foro aparece como segunda o tercera entrada:
Tema: Calcular CRC - Tema finalizado satisfactoriamente (http://www.todopic.com.ar/foros/index.php?topic=12705.msg72643#msg72643)
Hay que buscar mas.
Un saludo.
-
Poniendo una busqueda amplia en el buscador del foro aparece como segunda o tercera entrada:
Tema: Calcular CRC - Tema finalizado satisfactoriamente (http://www.todopic.com.ar/foros/index.php?topic=12705.msg72643#msg72643)
Hay que buscar mas.
Un saludo.
Jeje, jesús, te me has adelantado. Esperaba que nuestro nuevo amigo vaya haciendo la tarea solito, ya que si no lee las reglas del foro... le iba a llevar un tiempito ir por el tema.
Si te fijas en ese link que pasaste fui uno de los que más respondió :) :)
Hay muchas formas de calcular el CRC y lo importante es si tendremos que comunicarnos con otro equipo de un tercero o si será con nosotros mismos... si es con un tercero hay que tener muy en claro cómo se calcula el CRC y si es CCITT etc... el polinomio generador, el start value, si habrá algun valor con el cual hacer un XOR final, etc.
No es algo trivial y requiere lectura, por eso quería que nuestro nuevo amigo vaya dándose cuenta que no existe el post mágico que resuelve una pregunta puntual... hay que leer por más que querramos encender y apagar un led... :)
-
gracias por la ayuda a todos.
Un saludo.