Cómo asignar varias funciones de encendido y apagado a un único estado?

Iniciado por dominguero, 27 Diciembre 2016, 01:49 AM

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

dominguero

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.

ivancea96

Dado que usas SET y CLR, pienso que es mejor utilizarlos por partes:
LPC_GPIO0->CLR |= 1<<4 | 1<<8;
LPC_GPIO0->SET |= 1<<12 | 1<<16;

Nunca usé este microprocesador, así que tú dirás como fue.