feat: started game design
This commit is contained in:
@@ -1,62 +1,68 @@
|
||||
#include "power.h"
|
||||
|
||||
|
||||
bool powerbutton_released = true;
|
||||
|
||||
#define DR_REG_RTCCNTL_BASE 0x3ff48000
|
||||
#define RTC_CNTL_BROWN_OUT_REG (DR_REG_RTCCNTL_BASE + 0xd4)
|
||||
|
||||
|
||||
uint32_t PowerLastKeepAlive = 0;
|
||||
|
||||
void initPowerOn(void)
|
||||
{
|
||||
//disable brownout
|
||||
//WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
|
||||
if(digitalRead(PWR_BTN))
|
||||
// disable brownout
|
||||
if (digitalRead(PWR_BTN))
|
||||
{
|
||||
//enable LDO
|
||||
// enable LDO
|
||||
pinMode(PWR_HOLD, OUTPUT);
|
||||
pinMode(PWR_BTN, INPUT);
|
||||
digitalWrite(PWR_HOLD, HIGH);
|
||||
powerbutton_released = false;
|
||||
|
||||
//dac_sdMode
|
||||
// dac_sdMode
|
||||
pinMode(DAC_SDMODE, OUTPUT);
|
||||
digitalWrite(DAC_SDMODE, HIGH);
|
||||
//powerstate = poweringOn;
|
||||
//buttonPower.begin();
|
||||
// powerstate = poweringOn;
|
||||
// buttonPower.begin();
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP.deepSleep(10000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void powerDown(uint16_t delayMs)
|
||||
{
|
||||
log_w("poweringDown!");
|
||||
digitalWrite(PWR_HOLD, LOW);
|
||||
delay(delayMs);
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
void initPower(void)
|
||||
{
|
||||
printlnI(F("Power: init"));
|
||||
log_i("Power: init");
|
||||
initPowerOn();
|
||||
printlnI(F("Power: init: done"));
|
||||
|
||||
log_i("Power: init: done");
|
||||
}
|
||||
|
||||
void handlePower(void)
|
||||
{
|
||||
if(digitalRead(PWR_BTN) && powerbutton_released)
|
||||
if (digitalRead(PWR_BTN) && powerbutton_released)
|
||||
{
|
||||
printlnA("poweringDown!");
|
||||
debugHandle();
|
||||
while(digitalRead(PWR_BTN)) {}
|
||||
digitalWrite(PWR_HOLD, LOW);
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
while (digitalRead(PWR_BTN))
|
||||
{
|
||||
}
|
||||
powerDown(1000);
|
||||
}
|
||||
else{
|
||||
else
|
||||
{
|
||||
powerbutton_released = true;
|
||||
}
|
||||
// check timeout
|
||||
if ( millis() - PowerLastKeepAlive > TIMEOUT_POWER)
|
||||
{
|
||||
powerDown(1000);
|
||||
}
|
||||
}
|
||||
|
||||
void PowerKeepAlive(void)
|
||||
{
|
||||
PowerLastKeepAlive = millis();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user