/*
Descrição da função:
UINT16 value Os dados a serem operados
UINT16 start O bit de byte inicial nos dados de operação a serem buscados
UINT16 end O bit de byte final nos dados de operação
a serem buscados Exemplo:
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)//pega vários bits consecutivos de uma determinada palavra, o valor representado
{ UINT16 a, b,c; a=value>>(start); b=~(~0<<(end-start+1)); c=a&b; return c; } /* Descrição da função: BYTE value Dados a serem operados BYTE start To O byte inicial nos dados de operação a serem buscados BYTE end O byte final nos dados de operação a serem buscados
Exemplo:
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) //pega alguns bits consecutivos de um certo byte, o valor representado
{ BYTE a,b,c ; a=value >>(início); b=~(~0<<(fim-início+1)); c=a&b; return c; }
/* Define a posição do bit de um determinado valor de dados para 1 e mantém os outros bits inalterados*/
#define setDataBit(valor,bit) valor |= (0x1 << bit)
/* Limpa o bit bit de um valor de dados para 0 e mantém os outros bits inalterados*/
#define clrDataBit(valor,bit) valor &= ~(0x1 << bit)
/* Obtém um determinado valor de dados binários dos dados*/
#define getDataBit(x,y) ((x) >> (y)&1)