From 7b1f6a37ff653c760cc1b7d8d6e876976e4a9803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Mon, 26 Sep 2016 21:19:35 +0200 Subject: [PATCH] Add LED driver related macros instead of using magic numbers. --- right/src/led_driver.c | 16 +++++++--------- right/src/led_driver.h | 29 +++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/right/src/led_driver.c b/right/src/led_driver.c index fa0662c..b459dc3 100644 --- a/right/src/led_driver.c +++ b/right/src/led_driver.c @@ -17,9 +17,7 @@ void LedDriver_WriteBuffer(uint8_t txBuffer[], uint8_t size) void LedDriver_WriteRegister(uint8_t reg, uint8_t val) { - uint8_t txBuffer[] = {0, 0}; - txBuffer[0] = reg; - txBuffer[1] = val; + uint8_t txBuffer[] = {reg, val}; LedDriver_WriteBuffer(txBuffer, sizeof(txBuffer)); } @@ -35,18 +33,18 @@ void LedDriver_EnableAllLeds() GPIO_PinInit(GPIOA, 2U, &led_config); GPIO_SetPinsOutput(GPIOA, 0 << 2U); - LedDriver_WriteRegister(0xfd, 0x0b); // point to page 9 - LedDriver_WriteRegister(0x0a, 0x01); // set shutdown mode to normal - LedDriver_WriteRegister(0xfd, 0x00); // point to page 0 + LedDriver_WriteRegister(LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_FUNCTION); + LedDriver_WriteRegister(LED_DRIVER_REGISTER_SHUTDOWN, SHUTDOWN_MODE_NORMAL); + LedDriver_WriteRegister(LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_1); uint8_t i; - for (i=0x00; i<=0x11; i++) { + for (i=FRAME_REGISTER_LED_CONTROL_FIRST; i<=FRAME_REGISTER_LED_CONTROL_LAST; i++) { LedDriver_WriteRegister(i, 0xff); } - for (i=0x12; i<=0x23; i++) { + for (i=FRAME_REGISTER_BLINK_CONTROL_FIRST; i<=FRAME_REGISTER_BLINK_CONTROL_LAST; i++) { LedDriver_WriteRegister(i, 0x00); } - for (i=0x24; i<=0xb3; i++) { + for (i=FRAME_REGISTER_PWM_FIRST; i<=FRAME_REGISTER_PWM_LAST; i++) { LedDriver_WriteRegister(i, 0xff); } } diff --git a/right/src/led_driver.h b/right/src/led_driver.h index b25fb25..ddb93b3 100644 --- a/right/src/led_driver.h +++ b/right/src/led_driver.h @@ -1,5 +1,5 @@ -#ifndef __LED_DRIVER_H__ -#define __LED_DRIVER_H__ +#ifndef __LED_DRIVER_REGISTER_H__ +#define __LED_DRIVER_REGISTER_H__ // Includes: @@ -9,6 +9,31 @@ #include "i2c.h" #include "i2c_addresses.h" +// Macros: + + #define LED_DRIVER_REGISTER_SHUTDOWN 0x0A + #define LED_DRIVER_REGISTER_FRAME 0xFD + + #define LED_DRIVER_FRAME_1 0 + #define LED_DRIVER_FRAME_2 1 + #define LED_DRIVER_FRAME_3 2 + #define LED_DRIVER_FRAME_4 3 + #define LED_DRIVER_FRAME_5 4 + #define LED_DRIVER_FRAME_6 5 + #define LED_DRIVER_FRAME_7 6 + #define LED_DRIVER_FRAME_8 7 + #define LED_DRIVER_FRAME_FUNCTION 0x0B + + #define FRAME_REGISTER_LED_CONTROL_FIRST 0x00 + #define FRAME_REGISTER_LED_CONTROL_LAST 0x11 + #define FRAME_REGISTER_BLINK_CONTROL_FIRST 0x12 + #define FRAME_REGISTER_BLINK_CONTROL_LAST 0x23 + #define FRAME_REGISTER_PWM_FIRST 0x24 + #define FRAME_REGISTER_PWM_LAST 0xB3 + + #define SHUTDOWN_MODE_SHUTDOWN 0 + #define SHUTDOWN_MODE_NORMAL 1 + // Functions: extern void LedDriver_WriteBuffer(uint8_t txBuffer[], uint8_t size);