Hola amigos!
Estoy realizando un decodificador del protocolo RC-5.
Utilizo xc8 para programar un pic12F1840.
Revise el manual del compilador y otros mas para agregar una macro de manipulacion de bits.
hasta ahí todo correcto.
Mi variable es de 32bits ,al realizar el test de cada bit me doy cuenta que solo lo hace con los primeros 8bits16 bits.
después de eso solo da 0 y me parece que no accesa a los demás.
¿Como puedo hacer que revise la variable completa?
**Creo que es por la propia definicion de bit,que va de 0-7,pero no tengo idea xD
Esta es la macro
#define testbit(var,bit) ((var)&(1<<(bit)))
y la ocupo asi
if(data_completed==TRUE){
data_completed=FALSE;
index2=0;
for(index=0;index<14;index++){ //solo 28 bits
if(testbit(data_shadow,index2)&&!testbit(data_shadow,index2+1)) //si es 01 es 1
data_decoded|=1<<index; //
index2+=2;;
}//for index to decode data
Saludos y gracias!
SOLUCION
#define testbit(var,bit) ((var) & ((unsigned long) 1<<(bit)))
#define setbit(var,bit) ((var)|= ((unsigned long) 1<<(bit)))
#define clrbit(var,bit) ((var)&=~((unsigned long) 1<<(bit)))