diff --git a/src/drive/axp/axp20x.cpp b/src/drive/axp/axp20x.cpp index c8d73e8..40146bd 100644 --- a/src/drive/axp/axp20x.cpp +++ b/src/drive/axp/axp20x.cpp @@ -640,6 +640,7 @@ int AXP20X_Class::readIRQ() AXP_DEBUG("%02x:%02x ", AXP202_INTSTS1 + i, _irq[i]); } _readByte(AXP192_INTSTS5, 1, &_irq[4]); + AXP_DEBUG("%02x:%02x\n", AXP192_INTSTS5, _irq[4]); return AXP_PASS; case AXP202_CHIP_ID: @@ -1022,6 +1023,19 @@ int AXP20X_Class::setStartupTime(uint8_t param) return AXP_PASS; } +int AXP20X_Class::getStartupTime(){ + uint8_t val; + _readByte(AXP202_POK_SET, 1, &val); + + static const int trans[]={ + 13, 30, 10, 20 + }; + val &= 0b11000000; + AXP_DEBUG("%x -> %x\n", val, val>>6); + + return trans[ val>>6 ]; +} + int AXP20X_Class::setlongPressTime(uint8_t param) { uint8_t val; @@ -1036,6 +1050,21 @@ int AXP20X_Class::setlongPressTime(uint8_t param) return AXP_PASS; } + +int AXP20X_Class::getlongPressTime(){ + uint8_t val; + _readByte(AXP202_POK_SET, 1, &val); + + static const int trans[]={ + 10, 15, 20, 25 + }; + + val &= 0b00110000; + AXP_DEBUG("%x -> %x\n", val, val>>4); + + return trans[ val>>4 ]; +} + int AXP20X_Class::setShutdownTime(uint8_t param) { uint8_t val; @@ -1050,6 +1079,19 @@ int AXP20X_Class::setShutdownTime(uint8_t param) return AXP_PASS; } +int AXP20X_Class::getShutdownTime(){ + uint8_t val; + _readByte(AXP202_POK_SET, 1, &val); + + static const int trans[]={ + 40, 60, 80, 100 + }; + val &= 0b00000011; + AXP_DEBUG("%x\n", val); + + return trans[ val ]; +} + int AXP20X_Class::setTimeOutShutdown(bool en) { uint8_t val; diff --git a/src/drive/axp/axp20x.h b/src/drive/axp/axp20x.h index e0030ac..e6bcec6 100644 --- a/src/drive/axp/axp20x.h +++ b/src/drive/axp/axp20x.h @@ -32,7 +32,7 @@ github:https://github.com/lewisxhe/AXP202X_Libraries #include #include -#define AXP_DEBUG_PORT Serial +// #define AXP_DEBUG_PORT Serial #ifdef AXP_DEBUG_PORT #define AXP_DEBUG(fmt, ...) AXP_DEBUG_PORT.printf_P((PGM_P)PSTR(fmt), ##__VA_ARGS__) #else @@ -643,21 +643,37 @@ public: int setTimer(uint8_t minutes); int offTimer(); int clearTimerStatus(); + /** * param: axp202_startup_time_t or axp192_startup_time_t */ int setStartupTime(uint8_t param); + /** + * Return : LongPress threshold x10 (so 15 = 1.5s) + */ + int getStartupTime(); + /** * param: axp_loonPress_time_t */ int setlongPressTime(uint8_t param); + /** + * Return : LongPress threshold x10 (so 15 = 1.5s) + */ + int getlongPressTime(); + /** * @param param: axp_poweroff_time_t */ int setShutdownTime(uint8_t param); + /** + * Return : shutdown Press threshold x10 (so 15 = 1.5s) + */ + int getShutdownTime(); + int setTimeOutShutdown(bool en); int shutdown(); @@ -748,7 +764,7 @@ public: int setChargeControlCur(uint16_t mA); // Read register value at reg address - uint8_t readREG( uint8_t reg ){ + uint8_t readRegister( uint8_t reg ){ uint8_t dt; _readByte( reg, 1, &dt ); return dt;