Files
muziekdoos/FW/leo_muziekdoos_esp32/src/power.cpp
2021-10-24 14:06:59 +02:00

63 lines
1.1 KiB
C++

#include "power.h"
bool powerbutton_released = true;
#define DR_REG_RTCCNTL_BASE 0x3ff48000
#define RTC_CNTL_BROWN_OUT_REG (DR_REG_RTCCNTL_BASE + 0xd4)
void initPowerOn(void)
{
//disable brownout
//WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
if(digitalRead(PWR_BTN))
{
//enable LDO
pinMode(PWR_HOLD, OUTPUT);
pinMode(PWR_BTN, INPUT);
digitalWrite(PWR_HOLD, HIGH);
powerbutton_released = false;
//dac_sdMode
pinMode(DAC_SDMODE, OUTPUT);
digitalWrite(DAC_SDMODE, HIGH);
//powerstate = poweringOn;
//buttonPower.begin();
}
else
{
ESP.deepSleep(10000);
}
}
void initPower(void)
{
printlnI(F("Power: init"));
initPowerOn();
printlnI(F("Power: init: done"));
}
void handlePower(void)
{
if(digitalRead(PWR_BTN) && powerbutton_released)
{
printlnA("poweringDown!");
debugHandle();
while(digitalRead(PWR_BTN)) {}
digitalWrite(PWR_HOLD, LOW);
delay(1000);
ESP.restart();
}
else{
powerbutton_released = true;
}
}