TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: septiembre_negro en 31 de Agosto de 2009, 17:52:59

Título: Acceder a un bit de un array
Publicado por: septiembre_negro en 31 de Agosto de 2009, 17:52:59
Hola

Pues eso requiero modificar el bit 7 ,de una variable que forma parte de un array  el manual dice que se accede al  bit de una variable así:
int result;
#bit result_odd = result.0

Ahora si yo ago esto:
Int8 result[4],
#bit result_odd = result[2].0

El compilador me marca error y en el manual no e encontrado otra forma de hacerlo es así como debe hacerse o mi error esta en otra parte del código al trabajar el array

Como siempre agradezco sus comentarios

Título: Re: Acceder a un bit de un array
Publicado por: fabianjsm en 31 de Agosto de 2009, 19:37:30
Si queres invertir el septimo bit:
    result[2] ^= 128;
Setear:
    result[2] |= 128;
Que valga cero:
    result[2] &= 128;
En un if
    if(result[2] & 128) {
    }

128 es el resultado de 1<<7;
Título: Re: Acceder a un bit de un array
Publicado por: Nocturno en 31 de Agosto de 2009, 19:51:27
Si utilizas CCS también puedes utilizar las macros bit_test para leer un bit, y bit_set para ponerlo a 0 o 1.
Título: Re: Acceder a un bit de un array
Publicado por: septiembre_negro en 31 de Agosto de 2009, 23:46:56
Les agradezco sus comentarios probare de ambas maneras esto de cambiar el bit de un array se a puesto muy rudo . Y mas me extraña  que a todos les parece muy loco que quiera hacer esto en un array  :D :D :D

E probado ambas formas y las dos funcionan correctamente  :-/ :-/ :-/
Título: Re: Acceder a un bit de un array
Publicado por: MGLSOFT en 01 de Septiembre de 2009, 00:28:14
También deberías poder invertirlo con toggle_bit().

Espero te sirva...
Título: Re: Acceder a un bit de un array
Publicado por: septiembre_negro en 01 de Septiembre de 2009, 22:01:07
También deberías poder invertirlo con toggle_bit().

Espero te sirva...

Entendido y anotado  :P