Add LED driver related macros instead of using magic numbers.

This commit is contained in:
László Monda
2016-09-26 21:19:35 +02:00
parent 36bb5fabba
commit 7b1f6a37ff
2 changed files with 34 additions and 11 deletions

View File

@@ -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);
}
}

View File

@@ -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);