/*
Descripción de la función:
UINT16 valor Los datos que se van a operar
UINT16 start El bit de byte de inicio en los datos de operación que se van a buscar
UINT16 end El bit de byte de final en los datos de operación
que se van a buscar Ejemplo:
UINT16 t = 0x36; //0011 0110
UI16BIT res = Proget_16bits(t,4,5);
qDebug() << "res = " << res;
res = Proget_16bits(t,4,5);
qDebug() << "res = " << res;
*/
UINT16 Proget_16bits(UINT16 value, UINT16 start, UINT16 end)//toma varios bits consecutivos de una determinada palabra, el valor representado
{ UINT16 a, b,c; a=valor>>(inicio); b=~(~0<<(fin-inicio+1)); c=a&b; return c; } /* Descripción de la función: BYTE valor Datos a operar BYTE inicio Para El byte de inicio en los datos de operación que se van a buscar BYTE final El byte de final en los datos de operación que se van a buscar
Ejemplo:
BYTE t = 0x36; //0011 0110
BYTE res = Proget_8bits(t,4,5);
qDebug() << "res = " << res;
res = Proget_8bits(t,4,5);
qDebug( ) << "res = " << res;
*/
BYTE Proget_8bits(BYTE value,BYTE start,BYTE end) //tomar algunos bits consecutivos de un cierto byte, el valor representado
{ BYTE a,b,c ; a=valor >>(inicio); b=~(~0<<(fin-inicio+1)); c=a&b; return c; }
/* Establecer la posición de bit de un cierto valor de datos en 1, y mantener los otros bits sin cambios*/
#define setDataBit(valor, bit) valor |= (0x1 << bit)
/* Borrar el bit bit de un valor de datos a 0, y mantener los otros bits sin cambios*/
#define clrDataBit(valor, bit) valor &= ~(0x1 << bit)
/* Obtener un cierto valor de datos binarios de los datos*/
#define getDataBit(x,y) ((x) >> (y)&1)