Problème de CRC16 CCITT

Fermé
pouaille Messages postés 3 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 9 juin 2011 - 9 juin 2011 à 09:19
Bonjour,

Je veux réussir à décoder une onde AX.25 à l'aide d'un TNC qui ne décode que si toute la trame est bonne y compris le CRC...

J'arrive à vérifier que la trame est bonne. Il me semble donc que l'erreur provient du calcul du crc...

Voici mon morceau de programme :

void fcsbit(int tbyte) // Calcul du CRC
{
unsigned char lsb;
lsb = shift_right_int(&fcs, 0);
if ((lsb ^ tbyte) == 0x01)
{
fcs = fcs ^0x8408;
printf(fcs);
}
}

Voici la fonction dans lasuelle il est implémenté :

void SendByte(unsigned char inbyte)
{
int k;
unsigned char bt;

for (k = 0 ; k < (unsigned char) 8 ; k++)
{
bt = inbyte & 0x01; // Le masque permet de lire la valeur du lsb de l'octet

if ((is_fcs==0) && (is_flag==0))
{
fcsbit(bt);
}

L'erreur pourrait elle provenir du fait que le crc est calculé bit par bit?
Merci de votre aide,

Bonne journée
Pouaille

A voir également: