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