cyclone:
@cece
visto che non demordi quello che posso fare per aiutarti è allegarti un semplicissimo stralcio di codice C che realizza l'algoritmo.
il codice Encode converte in manch un byte, mentre l'encode riporta il codice in un byte....la parte encoder manchester:
void EncodeData(BYTE txbyte)
{
int i,j,b,me; //me=manchester encode int
b = txbyte;
for (i=0; i<2; i++) {
me = 0; // txbyte codificato manchester
for (j=0 ; j<4; j++) {
me >>=2;
if (bit_test(b,0) )
me |= 0b01000000; // 1->0
else
me |= 0b10000000; // 0->1
b >>=1;
}
putc(me);
}
}
questa è la parte decoder manchester:
BYTE DecodeData(BYTE encoded)
{
BYTE i,dec,enc,pattern;
enc = encoded;
if (enc == 0xf0) // start/end condition encountered
return 0xf0;
dec = 0;
for (i=0; i<4; i++) {
dec >>=1;
pattern = enc & 0b11;
if (pattern == 0b01) // 1
bit_set(dec,3);
else if (pattern == 0b10)
bit_clear(dec,3); // 0
else
return 0xff; // codice illegale
enc >>=2;
}
return dec;
}
esistono codici che ho scritto in altri linguaggi ..... ma questo è il più semplice che potresti utilizzare per la tua applicazione. ciao
cyclone, di dove sei, che ti devo proprio offrire una pizza?