#ifndef __AXP173_H__ #define __AXP173_H__ #include #include #define SLEEP_MSEC(us) (((uint64_t)us) * 1000L) #define SLEEP_SEC(us) (((uint64_t)us) * 1000000L) #define SLEEP_MIN(us) (((uint64_t)us) * 60L * 1000000L) #define SLEEP_HR(us) (((uint64_t)us) * 60L * 60L * 1000000L) #define AXP_ADDR 0X34 #define CURRENT_100MA (0b0000) #define CURRENT_190MA (0b0001) #define CURRENT_280MA (0b0010) #define CURRENT_360MA (0b0011) #define CURRENT_450MA (0b0100) #define CURRENT_550MA (0b0101) #define CURRENT_630MA (0b0110) #define CURRENT_700MA (0b0111) class AXP173 { public: AXP173(); /** * DCDC1: 3V3 Main rail. When not set the stick shuts down * DCDC2: 0V9 K210 VCore * DCDC3: 1V8 Use unknown * LDO1: Don't set GPIO1 as LDO * LDO2: 2V8 Display backlight * LDO3: 1V5 Display Control * GPIO0: LDO1 LCD_BL * EXTEN: */ void begin(bool isInited = false); public: private: void Write1Byte( uint8_t Addr , uint8_t Data ); uint8_t Read8bit( uint8_t Addr ); uint16_t Read12Bit( uint8_t Addr); uint16_t Read13Bit( uint8_t Addr); uint16_t Read16bit( uint8_t Addr ); uint32_t Read24bit( uint8_t Addr ); uint32_t Read32bit( uint8_t Addr ); void ReadBuff( uint8_t Addr , uint8_t Size , uint8_t *Buff ); }; #endif