AXP192.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef __AXP192_H__
  2. #define __AXP192_H__
  3. #include <Arduino.h>
  4. #include <Wire.h>
  5. #define SLEEP_MSEC(us) (((uint64_t)us) * 1000L)
  6. #define SLEEP_SEC(us) (((uint64_t)us) * 1000000L)
  7. #define SLEEP_MIN(us) (((uint64_t)us) * 60L * 1000000L)
  8. #define SLEEP_HR(us) (((uint64_t)us) * 60L * 60L * 1000000L)
  9. class AXP192 {
  10. public:
  11. AXP192();
  12. void begin(void);
  13. void ScreenBreath(int brightness);
  14. void ScreenSwitch(bool state);
  15. bool GetBatState();
  16. void EnableCoulombcounter(void);
  17. void DisableCoulombcounter(void);
  18. void StopCoulombcounter(void);
  19. void ClearCoulombcounter(void);
  20. uint32_t GetCoulombchargeData(void);
  21. uint32_t GetCoulombdischargeData(void);
  22. float GetCoulombData(void);
  23. uint16_t GetVbatData(void) __attribute__((deprecated));
  24. uint16_t GetIchargeData(void) __attribute__((deprecated));
  25. uint16_t GetIdischargeData(void) __attribute__((deprecated));
  26. uint16_t GetTempData(void) __attribute__((deprecated));
  27. uint32_t GetPowerbatData(void) __attribute__((deprecated));
  28. uint16_t GetVinData(void) __attribute__((deprecated));
  29. uint16_t GetIinData(void) __attribute__((deprecated));
  30. uint16_t GetVusbinData(void) __attribute__((deprecated));
  31. uint16_t GetIusbinData(void) __attribute__((deprecated));
  32. uint16_t GetVapsData(void) __attribute__((deprecated));
  33. uint8_t GetBtnPress(void);
  34. // -- sleep
  35. void SetSleep(void);
  36. void DeepSleep(uint64_t time_in_us = 0);
  37. void LightSleep(uint64_t time_in_us = 0);
  38. uint8_t GetWarningLeve(void);
  39. public:
  40. // void SetChargeVoltage( uint8_t );
  41. // void SetChargeCurrent( uint8_t );
  42. float GetBatVoltage();
  43. float GetBatCurrent();
  44. float GetVinVoltage();
  45. float GetVinCurrent();
  46. float GetVBusVoltage();
  47. float GetVBusCurrent();
  48. float GetTempInAXP192();
  49. float GetBatPower();
  50. float GetBatChargeCurrent();
  51. float GetAPSVoltage();
  52. float GetBatCoulombInput();
  53. float GetBatCoulombOut();
  54. uint8_t GetWarningLevel(void);
  55. void SetCoulombClear();
  56. void SetLDO2(bool State);
  57. void SetPeripherialsPower(uint8_t state);
  58. // -- Power Off
  59. void PowerOff();
  60. public:
  61. void Write1Byte(uint8_t Addr, uint8_t Data);
  62. uint8_t Read8bit(uint8_t Addr);
  63. uint16_t Read12Bit(uint8_t Addr);
  64. uint16_t Read13Bit(uint8_t Addr);
  65. uint16_t Read16bit(uint8_t Addr);
  66. uint32_t Read24bit(uint8_t Addr);
  67. uint32_t Read32bit(uint8_t Addr);
  68. void ReadBuff(uint8_t Addr, uint8_t Size, uint8_t *Buff);
  69. };
  70. #endif