PlatformIO package of the Teensy core framework compatible with GCC 10 & C++20
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

LowPower.h 1.1KB

3 anos atrás
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #ifndef LowPower_h
  2. #define LowPower_h
  3. #ifndef __AVR__
  4. #error "This LowPower library only works on AVR processors"
  5. #endif
  6. enum period_t
  7. {
  8. SLEEP_15Ms,
  9. SLEEP_30MS,
  10. SLEEP_60MS,
  11. SLEEP_120MS,
  12. SLEEP_250MS,
  13. SLEEP_500MS,
  14. SLEEP_1S,
  15. SLEEP_2S,
  16. SLEEP_4S,
  17. SLEEP_8S,
  18. SLEEP_FOREVER
  19. };
  20. enum bod_t
  21. {
  22. BOD_OFF,
  23. BOD_ON
  24. };
  25. enum adc_t
  26. {
  27. ADC_OFF,
  28. ADC_ON
  29. };
  30. enum timer2_t
  31. {
  32. TIMER2_OFF,
  33. TIMER2_ON
  34. };
  35. enum timer1_t
  36. {
  37. TIMER1_OFF,
  38. TIMER1_ON
  39. };
  40. enum timer0_t
  41. {
  42. TIMER0_OFF,
  43. TIMER0_ON
  44. };
  45. enum spi_t
  46. {
  47. SPI_OFF,
  48. SPI_ON
  49. };
  50. enum usart0_t
  51. {
  52. USART0_OFF,
  53. USART0_ON
  54. };
  55. enum twi_t
  56. {
  57. TWI_OFF,
  58. TWI_ON
  59. };
  60. class LowPowerClass
  61. {
  62. public:
  63. void idle(period_t period, adc_t adc, timer2_t timer2,
  64. timer1_t timer1, timer0_t timer0, spi_t spi,
  65. usart0_t usart0, twi_t twi);
  66. void adcNoiseReduction(period_t period, adc_t adc, timer2_t timer2);
  67. void powerDown(period_t period, adc_t adc, bod_t bod);
  68. void powerSave(period_t period, adc_t adc, bod_t bod, timer2_t timer2);
  69. void powerStandby(period_t period, adc_t adc, bod_t bod);
  70. void powerExtStandby(period_t period, adc_t adc, bod_t bod, timer2_t timer2);
  71. };
  72. extern LowPowerClass LowPower;
  73. #endif