Agregar uno a un valor en C ++ para un PIC Micro

1

Tengo un PIC 12f629 y lo voy a programar. Tengo un valor para la salida:

GPIO = 0b000000;

y lo estoy utilizando en un bucle que se repite 10 veces:

for (i = 0; i < 10; i++)

Mi problema es que necesito incrementar GPIO para poder abordar diferentes regiones de memoria.

¿Cómo podría hacer eso en C ++?

    
pregunta user3649714

1 respuesta

6

Binario es la forma en que se expresa el literal 0b000000 en el programa, internamente todos son números binarios, por lo que 0x00 para hexadecimal o simplemente un 0 para decimal hará lo mismo. Su código debe ser tan simple como este para completar los tres primeros bits del puerto:

for(i=0; i < 8; i++)
    GPIO = i;

Sin embargo, tenga en cuenta que eso sobrescribirá el contenido de todo el puerto, por lo que si está utilizando otras partes del puerto para la salida, es posible que desee realizar un seguimiento de su estado. O bien, o puede usar un código como el siguiente para establecer los tres bits más bajos dependiendo de si el compilador y el PIC que se está utilizando permiten que ese valor GPIO se lea de nuevo:

for(i=0; i < 8; i++)
    GPIO = (GPIO & 0b11111000) | i;

Eso solo usa un operador AND para volver a leer el valor del puerto con los tres bits más bajos borrados y luego usa un operador OR para incluir el contenido de i .

    
respondido por el PeterJ

Lea otras preguntas en las etiquetas