Autor Tema: bit_set,bit_clear en MPLABX  (Leído 3059 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
bit_set,bit_clear en MPLABX
« en: 28 de Julio de 2014, 23:42:55 »
Hola amigos alguno de ustedes me prodria decir como seria el código de la función bit_set() y bit_clear() lo quiero hacer en MPLABX pero no se me ocurre nada por el momento, estas funciones lo he visto en ccs pero lo quiero en mplabx, alguien sabría como hacerlo?.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: bit_set,bit_clear en MPLABX
« Respuesta #1 en: 29 de Julio de 2014, 01:18:49 »
Hola antayhua!

Revisa este link.

Te darás cuenta que lo puse para 32bits , si lo quieres a 8bits cámbialo por char.

Saludos!!

Código: C
  1. #define testbit(var,bit)    ((var) & ((unsigned long) 1<<(bit)))
  2. #define setbit(var,bit)     ((var)|= ((unsigned long) 1<<(bit)))
  3. #define clrbit(var,bit)     ((var)&=~((unsigned long) 1<<(bit)))

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
Re: bit_set,bit_clear en MPLABX
« Respuesta #2 en: 29 de Julio de 2014, 10:37:40 »
Hola antayhua!

Revisa este link.

Te darás cuenta que lo puse para 32bits , si lo quieres a 8bits cámbialo por char.

Saludos!!

Código: C
  1. #define testbit(var,bit)    ((var) & ((unsigned long) 1<<(bit)))
  2. #define setbit(var,bit)     ((var)|= ((unsigned long) 1<<(bit)))
  3. #define clrbit(var,bit)     ((var)&=~((unsigned long) 1<<(bit)))

gracias por tu ayuda lo probrare.

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
Re: bit_set,bit_clear en MPLABX
« Respuesta #3 en: 31 de Julio de 2014, 01:54:21 »
Buenas amigo, tal y como dice  AKENAFAB, esos macros te serán de utilidad.

Código: [Seleccionar]
#define bit_clear(var, bit)       ((var) &= ~(1<<(bit)))
#define bit_set(var, bit)         ((var) |= (1<<(bit)))
#define bit_toggle(var, bit)      ((var) ^= (1<<(bit)))
#define bit_test(var, bit)        ((var) & (1<<(bit)))

Saludos.