O
otuzsubat
Guest
Yo uso un teclado 4x3 en mi proyecto.Yo uso C0, C1, C2 y C5 como pines de salida, y E0, E1, E2, como insumos.Esta función puede ser más simple?
char one_char (void) (
unsigned int fila;
para (fila = 0; fila <4; ){//" fila fila "
if (fila == 0) (
output_low (pin_c0);
output_high (pin_c1);
output_high (pin_c2);
output_high (pin_c5);
)
if (fila == 1) (
output_high (pin_c0);
output_low (pin_c1);
output_high (pin_c2);
output_high (pin_c5);
)
if (fila == 2) (
output_high (pin_c0);
output_high (pin_c1);
output_low (pin_c2);
output_high (pin_c5);
)
if (fila == 3) (
output_high (pin_c0);
output_high (pin_c1);
output_high (pin_c2);
output_low (pin_c5);
)
if (! entrada (PIN_E0) & & entrada (PIN_E1) & & entrada (PIN_E2))
return ((fila * 3) 1 0 x30;
else if (entrada (PIN_E0) & &! de entrada (PIN_E1) & & entrada (PIN_E2))
return ((fila * 3) 2 0 x30);
else if (entrada (PIN_E0) & & entrada (PIN_E1) & &! de entrada (PIN_E2))
return ((fila * 3) 3 0 x30);
algo más
return (0);
)
char one_char (void) (
unsigned int fila;
para (fila = 0; fila <4; ){//" fila fila "
if (fila == 0) (
output_low (pin_c0);
output_high (pin_c1);
output_high (pin_c2);
output_high (pin_c5);
)
if (fila == 1) (
output_high (pin_c0);
output_low (pin_c1);
output_high (pin_c2);
output_high (pin_c5);
)
if (fila == 2) (
output_high (pin_c0);
output_high (pin_c1);
output_low (pin_c2);
output_high (pin_c5);
)
if (fila == 3) (
output_high (pin_c0);
output_high (pin_c1);
output_high (pin_c2);
output_low (pin_c5);
)
if (! entrada (PIN_E0) & & entrada (PIN_E1) & & entrada (PIN_E2))
return ((fila * 3) 1 0 x30;
else if (entrada (PIN_E0) & &! de entrada (PIN_E1) & & entrada (PIN_E2))
return ((fila * 3) 2 0 x30);
else if (entrada (PIN_E0) & & entrada (PIN_E1) & &! de entrada (PIN_E2))
return ((fila * 3) 3 0 x30);
algo más
return (0);
)