feat: started game design

This commit is contained in:
2021-12-10 17:15:22 +01:00
parent 94017d771c
commit 7e73a3fbd4
18 changed files with 351 additions and 146 deletions

View File

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