Necesito comparar los estados de bits de un registro para tomar accion sobre los bits de otro registro.
Hoy lo estoy haciendo de este modo:
#define Rele1 datoOut,0
#define Rele2 datoOut,1
#define Rele3 datoOut,2
#define Rele4 datoOut,3
#define Rele5 datoOut,4
#define LedPB datoOut,5
#define LedTA datoOut,6
#define LedPA datoOut,7
#define Enter datoIn,0
#define Esc datoIn,1
#define Prog datoIn,2
#define Up datoIn,3
#define Down datoIn,4
#define Input3 datoIn,5
#define Input2 datoIn,6
#define Input1 datoIn,7
//hasta aqui declaro las posiciones de cada uno...
Dentro de main() tengo lo siguiente:
read_expanded_inputs (&datoIn); //lee las entradas
//DatoOut=DatoIn; //esta forma no anduvo....
if (Bit_Test(Enter)) Bit_SET(Rele1);
if (Bit_Test(Esc)) Bit_SET(Rele2);
if (Bit_Test(Prog)) Bit_SET(LedPB);
if (Bit_Test(Up)) Bit_SET(LedTA);
if (Bit_Test(Down)) Bit_SET(LedPA);
//esta forma si anduvo, pero quiero mejorar su lectura y manejo...
write_expanded_outputs (&datoOut); // escribe las salidas
Alguien puede guiarme o ayudarme a mejorarlo??
Quisiera poder hacerlo mas legible y facil de utilizar, en PBP yo ponia:
If Enter then Rele1
y andaba OK.
Aqui no
Gracias por su lectura, mas agradecido si me ayudan..