From 063ac23917f608202b337b09fe355d9223493245 Mon Sep 17 00:00:00 2001 From: Omar Magdy Date: Sun, 21 Aug 2022 18:42:49 +0200 Subject: Added intital project --- color.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 color.c (limited to 'color.c') diff --git a/color.c b/color.c new file mode 100644 index 0000000..967350f --- /dev/null +++ b/color.c @@ -0,0 +1,44 @@ +#include "color.h" +#include + +#define LED_RED (1U << 1) +#define LED_BLUE (1U << 2) +#define LED_GREEN (1U << 3) + +void set_color(uint8_t color) { + switch (color) { + case RED: + GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, 0x2); + break; + case BLUE: + GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, 0x4); + break; + case GREEN: + GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, 0x8); + break; + case WHITE: + GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, 0xe); + break; + } +} + +void toggle_color(uint8_t color) { + switch (color) { + case RED: + GPIO_PORTF_DATA_R ^= LED_RED; + break; + case BLUE: + GPIO_PORTF_DATA_R ^= LED_BLUE; + break; + case GREEN: + GPIO_PORTF_DATA_R ^= LED_GREEN; + break; + case WHITE: + GPIO_PORTF_DATA_R ^= (LED_RED | LED_BLUE | LED_GREEN); + break; + } +} + +void reset_color() { + PORTF &= 0x11; +} -- cgit v1.2.3