|
@@ -2,7 +2,8 @@
|
|
|
#include <HardwarePWM.h>
|
|
|
|
|
|
/* Private defines */
|
|
|
-#define LED_NUM 4
|
|
|
+#define LED_NUM 4
|
|
|
+#define LED_REFRESH_MS 3
|
|
|
|
|
|
#define PinSet(pin) GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, ((uint16_t)1<<(pin)))
|
|
|
#define PinRes(pin) GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, ((uint16_t)1<<(pin)))
|
|
@@ -45,7 +46,7 @@ typedef enum t_led_symb {
|
|
|
sym_2 = (uint8_t)(seg_A | seg_B | seg_G | seg_E | seg_D),
|
|
|
sym_3 = (uint8_t)(seg_A | seg_B | seg_G | seg_C | seg_D),
|
|
|
sym_4 = (uint8_t)(seg_F | seg_G | seg_B | seg_C),
|
|
|
- sym_5 = (uint8_t)(seg_A | seg_F | seg_G | seg_E | seg_D),
|
|
|
+ sym_5 = (uint8_t)(seg_A | seg_F | seg_G | seg_C | seg_D),
|
|
|
sym_6 = (uint8_t)(seg_A | seg_F | seg_G | seg_E | seg_D | seg_C),
|
|
|
sym_7 = (uint8_t)(seg_A | seg_B | seg_C),
|
|
|
sym_8 = (uint8_t)(seg_A | seg_B | seg_C | seg_D | seg_E | seg_F | seg_G),
|
|
@@ -60,7 +61,7 @@ static const led_pos_t led_pos[LED_NUM] = {
|
|
|
static const led_symb_t led_dig[10] = {
|
|
|
sym_0, sym_1, sym_2, sym_3, sym_4, sym_5, sym_6, sym_7, sym_8, sym_9
|
|
|
};
|
|
|
-static led_symb_t led_bufer[LED_NUM] = {sym_0, sym_1, sym_2, sym_3};
|
|
|
+static led_symb_t led_bufer[LED_NUM] = {sym_Blank, sym_Blank, sym_Blank, sym_Blank};
|
|
|
static Timer ledTimer;
|
|
|
static uint8_t hw_pwm_pins[1] = {PIN_OUTE};
|
|
|
static HardwarePWM OE_pwm(hw_pwm_pins, 1);
|
|
@@ -94,25 +95,25 @@ void LED_writeData (led_pos_t pos, led_symb_t data) {
|
|
|
|
|
|
void LED_ShowLed(void) {
|
|
|
static uint8_t cnt = 0;
|
|
|
- LED_writeData(led_pos[cnt], led_bufer[cnt]);
|
|
|
+ LED_writeData(led_pos[cnt], sym_Blank);
|
|
|
cnt ++;
|
|
|
if (cnt >= LED_NUM) {
|
|
|
cnt = 0;
|
|
|
}
|
|
|
+ LED_writeData(led_pos[cnt], led_bufer[cnt]);
|
|
|
}
|
|
|
|
|
|
/* Exported functions */
|
|
|
void LED_Init (void) {
|
|
|
Serial.println("BIG LED SPI init!");
|
|
|
|
|
|
-
|
|
|
/* in future, replace by pwm */
|
|
|
- pinMode(PIN_OUTE, OUTPUT);
|
|
|
+/* pinMode(PIN_OUTE, OUTPUT);
|
|
|
PinRes(PIN_OUTE); // output enable
|
|
|
-/*
|
|
|
+*/
|
|
|
MaxDuty = OE_pwm.getMaxDuty();
|
|
|
- LED_SetBright(50);
|
|
|
-/*
|
|
|
+ LED_SetBright(14);
|
|
|
+
|
|
|
/* prepare soft spi */
|
|
|
pinMode(PIN_DOUT, OUTPUT);
|
|
|
pinMode(PIN_CLK, OUTPUT);
|
|
@@ -122,7 +123,7 @@ void LED_Init (void) {
|
|
|
PinRes(PIN_LOAD);
|
|
|
|
|
|
/* Start timer for refresh leds */
|
|
|
- ledTimer.initializeMs(5, LED_ShowLed).start();
|
|
|
+ ledTimer.initializeMs(LED_REFRESH_MS, LED_ShowLed).start();
|
|
|
}
|
|
|
|
|
|
/**
|