Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dominguero en 27 Diciembre 2016, 01:49 am



Título: Cómo asignar varias funciones de encendido y apagado a un único estado?
Publicado por: dominguero en 27 Diciembre 2016, 01:49 am
Buenas. Tengo una duda respecto a la programación en lenguaje C.
Quiero encender varios leds y apagar otros para la simulación de un semáforo. El caso es que para no estar todo el tiempo repitiendo los comandos de CLR y SET en los respectivos pines para encender y apagar los leds, quiero asignar estados para hacerlo más rápido. Por poner un ejemplo para que me entendais:

Supongamos que en el puerto 0 quiero encender los leds asignados a los pines 4 y 8, y quiero apagar los leds asignados a los pines 12 y 16. El estado en el que esos dos leds están encendidos y los otros 2 están apagados lo llamaremos estado1.

estado1 = (LPC_GPIO0->CLR=1<<4|LPC_GPIO0->CLR=1<<8|

LPC_GPIO0->SET=1<<12|LPC_GPIO0->SET=1<<16);

esto que he puesto da error y sé que no está bien pero quiero que entendáis lo que quiero hacer. Cómo debería hacerse? Gracias de antemano.


Título: Re: Cómo asignar varias funciones de encendido y apagado a un único estado?
Publicado por: ivancea96 en 27 Diciembre 2016, 14:11 pm
Dado que usas SET y CLR, pienso que es mejor utilizarlos por partes:
Código
  1. LPC_GPIO0->CLR |= 1<<4 | 1<<8;
  2. LPC_GPIO0->SET |= 1<<12 | 1<<16;
Nunca usé este microprocesador, así que tú dirás como fue.