Hola estoy intentando hacer algunas cosillas con el arduino nano y no encuentro la forma de pasar una variable int o word a Bits individuales y al revés
Como vengo del ámbito de los PLC quería hacer alguna cosilla similar a la que hace un PLC industrial tipo Siemens Omron Hitachi Modicon etc. con un arduino pero me encuentro que lo que es tan básico en un PLC que seria como leer o escribir un bit individual de una palabra no se como hacerlo.
Quería hacerme una biblioteca de funciones típicas de PLC como los bits de Clock de FirstScan Los temporizadores y contadores y ya tengo alguna cosilla, pero para el tema de los bits estoy atascado porque no me funciona ni una puñetera funcion OR de dos palabras
Se me había ocurrido hacer una funcion con algo así pero no traga
Void word_to_Bit (int Wordin , boolean BitSal[16]![]()
// Wordin=0; palabra que queremos pasar a bits
// boolean BitSal[16]; array de salida para acceder a los bits individuales
/ / Se crean unas palabras mascara de 16 bits que contengan todos los bits a cero menos 1 el que queremos testear
int MaskBit00=1;
int MaskBit01=2;
int MaskBit02=4;
int MaskBit03=8;
int MaskBit04=16;
int MaskBit05=32;
int MaskBit06=64;
int MaskBit07=128;
int MaskBit08=256;
int MaskBit09=512;
int MaskBit10=1024;
int MaskBit11=2048;
int MaskBit12=4096;
int MaskBit13=8192;
int MaskBit14 =16384;
int MaskBit15 = -32768;
Wordresul =0:
Wordresul = {Wordxx && MaskBit00 }; // funcion & de dos palabras de 16 bits
// si el resultado de la and con la mascara es distinto de 0 es que el bit era 1 si no era 0
if (Wordresul != 0)
{
BitSal[0]=1;
}
Else
{
BitSal[0]=0;
}
Wordresul = {Wordxx && MaskBit01 };
if (Wordresul != 0)
{
BitSal[1]=1;
}
Else
{
BitSal[1]=0;
}
Wordresul = {Wordxx && MaskBit02 };
if (Wordresul != 0)
{
BitSal[2]=1;
}
Else
{
BitSal[2]=0;
}
Etc Etc Etc hasta el bit 15
Si alguien sabe como pasar de word a bit mas fácil le agradecería me lo explique o me indique algún manual tipo ensamblador
Gracias