Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
/* Dado
D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0 */
/* Sindrome P4P3P2P1P0 */
/* Dado transmitido
P4 P3 P2 P1 P0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6
D5 D4 D3 D2 D1 D0 */
/* dado recebido
PR4PR3PR2PR1PR0DR15DR14DR13DR12DR11DR10DR9DR8DR7DR6DR5DR4DR3DR
2DR1DR0 */
/* dado gerado no receptor G4 G3 G2 G1 G0 */
/* Mapa de Hammings */
/* |-----D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0-|
|P0
X
X
X
X X X
X |
|P1
X
X
X
X
X
X X
X X |
|P2
X
X
X X
X
X X
|
|P3
X
X
X
X
X
X
X X
|
|P4
X
X
X
X X
X
X
|
|-----------------------------------------------------------| */
/* Exemplo P4=D15xorD14xorD12xorD9xorD8xorD6xorD3
*/
24
25
26
27
28
29
30
31
*/
11000
11001
11010
11011
11100
11101
11110
11111
Mais de
Mais de
DR15
Mais de
DR12
Mais de
Mais de
Mais de
um erro
um erro
um erro
um erro
um erro
um erro
short DR13 = 0;
short DR14 = 1;
short DR15 = 1;
/*Paridade recebida de 5 bits*/
short PR0;
short PR1;
short PR2;
short PR3;
short PR4;
/*Paridade calculada no receptor*/
short G0;
short G1;
short G2;
short G3;
short G4;
/*sindrome gerado*/
short F0;
short F1;
short F2;
short F3;
short F4;
/*Programa principal*/
void main()
{
/*Paridades no transmissor*/
/*P0*/
if(D0==D4)
{P=0;}
else
{P=1;}
if(P==D5)
{P=0;}
else
{P=1;}
if(P==D6)
{P=0;}
else
{P=1;}
if(P==D10)
{P=0;}
else
{P=1;}
if(P==D13)
{P=0;}
else
{P=1;}
if(P==D14)
{P=0;}
else
{P=1;}
P0=P;
/*P1*/
if(D0==D1)
{P=0;}
else
{P=1;}
if(P==D7)
{P=0;}
else
{P=1;}
if(P==D8)
{P=0;}
else
{P=1;}
if(P==D10)
{P=0;}
else
{P=1;}
if(P==D11)
{P=0;}
else
{P=1;}
if(P==D13)
{P=0;}
else
{P=1;}
if(P==D14)
{P=0;}
else
{P=1;}
if(P==D15)
{P=0;}
else
{P=1;}
P1=P;
/*P2*/
if(D1==D2)
{P=0;}
else
{P=1;}
if(P==D4)
{P=0;}
else
{P=1;}
if(P==D9)
{P=0;}
else
{P=1;}
if(P==D10)
{P=0;}
else
{P=1;}
if(P==D11)
{P=0;}
else
{P=1;}
if(P==D12)
{P=0;}
else
{P=1;}
P2=P;
/*P3*/
if(D2==D3)
{P=0;}
else
{P=1;}
if(P==D5)
{P=0;}
else
{P=1;}
if(P==D7)
{P=0;}
else
{P=1;}
if(P==D11)
{P=0;}
else
{P=1;}
if(P==D12)
{P=0;}
else
{P=1;}
if(P==D13)
{P=0;}
else
{P=1;}
if(P==D15)
{P=0;}
else
{P=1;}
P3=P;
/*P4*/
if(D3==D6)
{P=0;}
else
{P=1;}
if(P==D8)
{P=0;}
else
{P=1;}
if(P==D9)
{P=0;}
else
{P=1;}
if(P==D12)
{P=0;}
else
{P=1;}
if(P==D14)
{P=0;}
else
{P=1;}
if(P==D15)
{P=0;}
else
{P=1;}
P4=P;
/*Paridades recebidas no receptor*/
PR0=P0;
PR1=P1;
PR2=P2;
PR3=P3;
PR4=P4;
/* Paridades calculadas utilizando os dados recebidos*/
/*G0*/
if(DR0==DR4)
{P=0;}
else
{P=1;}
if(P==DR5)
{P=0;}
else
{P=1;}
if(P==DR6)
{P=0;}
else
{P=1;}
if(P==DR10)
{P=0;}
else
{P=1;}
if(P==DR13)
{P=0;}
else
{P=1;}
if(P==DR14)
{P=0;}
else
{P=1;}
G0=P;
/*G1*/
if(DR0==DR1)
{P=0;}
else
{P=1;}
if(P==DR7)
{P=0;}
else
{P=1;}
if(P==DR8)
{P=0;}
else
{P=1;}
if(P==DR10)
{P=0;}
else
{P=1;}
if(P==DR11)
{P=0;}
else
{P=1;}
if(P==DR13)
{P=0;}
else
{P=1;}
if(P==DR14)
{P=0;}
else
{P=1;}
if(P==DR15)
{P=0;}
else
{P=1;}
G1=P;
/*G2*/
if(DR1==DR2)
{P=0;}
else
{P=1;}
if(P==DR4)
{P=0;}
else
{P=1;}
if(P==DR9)
{P=0;}
else
{P=1;}
if(P==DR10)
{P=0;}
else
{P=1;}
if(P==DR11)
{P=0;}
else
{P=1;}
if(P==DR12)
{P=0;}
else
{P=1;}
G2=P;
/*G3*/
if(DR2==DR3)
{P=0;}
else
{P=1;}
if(P==DR5)
{P=0;}
else
{P=1;}
if(P==DR7)
{P=0;}
else
{P=1;}
if(P==DR11)
{P=0;}
else
{P=1;}
if(P==DR12)
{P=0;}
else
{P=1;}
if(P==DR13)
{P=0;}
else
{P=1;}
if(P==DR15)
{P=0;}
else
{P=1;}
G3=P;
/*G4*/
if(DR3==DR6)
{P=0;}
else
{P=1;}
if(P==DR8)
{P=0;}
else
{P=1;}
if(P==DR9)
{P=0;}
else
{P=1;}
if(P==DR12)
{P=0;}
else
{P=1;}
if(P==DR14)
{P=0;}
else
{P=1;}
if(P==DR15)
{P=0;}
else
{P=1;}
G4=P;
/*Calculo do sindrome F4 F3 F2 F1 F0*/
/*F0*/
if(PR0==G0)
{F0=0;}
else
{F0=1;}
/*F1*/
if(PR1==G1)
{F1=0;}
else
{F1=1;}
/*F2*/
if(PR2==G2)
{F2=0;}
else
{F2=1;}
/*F3*/
if(PR3==G3)
{F3=0;}
else
{F3=1;}
/*F4*/
if(PR4==G4)
{F4=0;}
else
{F4=1;}
}