diff --git a/platformio.ini b/platformio.ini index b327a44..ba45329 100644 --- a/platformio.ini +++ b/platformio.ini @@ -15,6 +15,11 @@ upload_port = stlink debug_tool = stlink lib_ldf_mode = deep+ +[env:LedBoardV11] +board = STM32L031K6 +build_flags = + -DHARDWAREVERSION=11 + [env:LedBoardV10] board = STM32L031K6 build_flags = @@ -23,4 +28,5 @@ build_flags = [env:ledboard_PROTO] board = nucleo_l031K6 build_flags = - -DHARDWAREVERSION=09 \ No newline at end of file + -DHARDWAREVERSION=09 + diff --git a/src/board.h b/src/board.h index fe4f35e..907810d 100644 --- a/src/board.h +++ b/src/board.h @@ -61,27 +61,27 @@ #elif HARDWAREVERSION==11 - #define LED3 PB2 - #define LED2 PB8 - #define LED1 PB7 + #define LED3 PB6 + #define LED2 PB7 + #define LED1 PB2 #define DETECT3 PA6 #define DETECT2 PA5 #define DETECT1 PA4 - #define SWITCH3 PA7 //A6 TOGGLE1 - #define SWITCH32 PA2 //A7 MOMENTARY1 - #define SWITCH2 PA1 //A1 TOGGLE1 - #define SWITCH22 PA3 //A2 MOMENTARY1 - #define SWITCH1 PB6 //D11 TOGGLE1 - #define SWITCH12 PB5 //D12 MOMENTARY1 + #define SWITCH3 PB5 // TOGGLE3 + #define SWITCH32 PB4 // MOMENTARY3 + #define SWITCH2 PA1 // TOGGLE2 + #define SWITCH22 PA3 // MOMENTARY2 + #define SWITCH1 PA7 // TOGGLE1 + #define SWITCH12 PA9 // MOMENTARY1 - #define LD3LED PB3 - #define WAKEUPPIN PA2 + #define BTN_PWR PA2 + #define PW_HOLD PA10 #define VBATTPIN PA0 //A0 VBATT + #define MEAS_EN PA8 #define R12 4.7 #define R13 10 - #define MEASTRIGGER PA8 #define REDLEDRES #define YELLOWLEDRES diff --git a/src/main.cpp b/src/main.cpp index 5712602..e74bf34 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -106,8 +106,7 @@ void setup() { initLeds(); initButtons(); - initLowPower(); - initBattery(); + initPower(); initDetectLed(); initMagicSwitchBoard(); diff --git a/src/power.cpp b/src/power.cpp index 2de243c..45b531e 100644 --- a/src/power.cpp +++ b/src/power.cpp @@ -7,13 +7,18 @@ #ifdef VBATTPIN #include "Battery.h" - Battery battery(VBATTMIN, VBATTMAX, VBATTPIN); +Battery battery(VBATTMIN, VBATTMAX, VBATTPIN); #endif void initBattery(void) { #ifdef VBATTPIN - battery.begin(VBATTREF, (R12+R13)/R13); //R1 = 220K, R2 = 100K, factor = (R1+R2)/R2 +#ifdef MEAS_EN + battery.begin(VBATTREF, (R12 + R13) / R13); //R1 = 220K, R2 = 100K, factor = (R1+R2)/R2 + battery.onDemand(MEAS_EN, HIGH); +#else + battery.begin(VBATTREF, (R12 + R13) / R13); //R1 = 220K, R2 = 100K, factor = (R1+R2)/R2 +#endif #endif } @@ -21,19 +26,19 @@ void batterydisplay(void) { #ifdef VBATTPIN uint16_t currentlevel = battery.level(); - - if (currentlevel > 90) - { - turnOnLed(3); - } - if (currentlevel > 50) - { - turnOnLed(2); - } - if (currentlevel > 20) - { - turnOnLed(1); - } + + if (currentlevel > 90) + { + turnOnLed(3); + } + if (currentlevel > 50) + { + turnOnLed(2); + } + if (currentlevel > 20) + { + turnOnLed(1); + } #endif } @@ -43,7 +48,7 @@ void batteryCheck(void) #ifdef VBATTPIN if (battery.voltage() < VBATTMIN) { - for( int i = 0; i < 10;i++) + for (int i = 0; i < 10; i++) { turnOnLed(1); delay(300); @@ -56,15 +61,27 @@ void batteryCheck(void) #endif } +void initShutdown(void) +{ +#ifdef PW_HOLD + pinMode(PW_HOLD, OUTPUT); + pinMode(BTN_PWR, INPUT); + digitalWrite(PW_HOLD, HIGH); +#endif +} + //low power -void initLowPower(void) +void initPower(void) { LowPower_init(); + initBattery(); } void shutdown(void) { LowPower_shutdown(); + delay(2000); + //digitalWrite() } void HandlePower(void) @@ -73,6 +90,9 @@ void HandlePower(void) batteryCheck(); } +void HandlePowerOn(void) +{ +} void HandleTimeOut(void) { diff --git a/src/power.h b/src/power.h index 3af41ef..1e2ac76 100644 --- a/src/power.h +++ b/src/power.h @@ -1,12 +1,11 @@ #pragma once //battery -void initBattery(void); void batterydisplay(void); void batteryCheck(void); //low power -void initLowPower(void); +void initPower(void); void shutdown(void); void HandleTimeOut(void); void HandlePower(void);