Skip to content

Commit 3e4915e

Browse files
committed
Import latest code from @bigdinotech
1 parent 7304fe0 commit 3e4915e

File tree

3 files changed

+282
-117
lines changed

3 files changed

+282
-117
lines changed

src/ArduinoLowPower.h

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#error The library is not compatible with AVR boards
88
#endif
99

10-
#ifdef ARDUINO_ARCH_ARC32
10+
#ifdef __ARDUINO_ARC__
1111
#include "include/arc32/defines.h"
1212
#endif
1313

@@ -39,9 +39,12 @@ class ArduinoLowPowerClass {
3939

4040
void attachInterruptWakeup(uint32_t pin, voidFuncPtr callback, uint32_t mode);
4141

42-
#ifdef ARDUINO_ARCH_ARC32
43-
void wakeFromSleepCallback(void);
44-
#endif
42+
#ifdef __ARDUINO_ARC__
43+
void wakeFromSleepCallback(void);
44+
void wakeFromDoze(void);
45+
void detachInterruptWakeup(uint32_t pin);
46+
uint32_t arc_restore_addr;
47+
#endif
4548

4649
private:
4750
#ifdef ARDUINO_ARCH_SAMD
@@ -50,24 +53,27 @@ class ArduinoLowPowerClass {
5053
#define RTC_ALARM_WAKEUP 0xFF
5154
#endif
5255

53-
#ifdef ARDUINO_ARCH_ARC32
54-
void wakeFromDoze();
55-
void switchToHybridOscillator();
56-
void switchToCrystalOscillator();
57-
void attachWakeInterruptRTC(void (*userCallBack)());
56+
#ifdef __ARDUINO_ARC__
5857
void turnOffUSB();
59-
void turnOnUSB();
60-
void setRTCCMR(int milliseconds);
61-
uint32_t readRTC_CCVR();
62-
bool isSleeping = false;
63-
uint32_t millisToRTCTicks(int milliseconds);
64-
void enableRTCInterrupt();
65-
void x86_C2Request();
66-
void (*pmCB)();
67-
#define RTC_ALARM_WAKEUP 0xFF
58+
void turnOnUSB();
59+
void switchToHybridOscillator();
60+
void switchToCrystalOscillator();
61+
void setRTCCMR(int seconds);
62+
uint32_t readRTC_CCVR();
63+
bool isSleeping = false;
64+
volatile bool dozing = false;
65+
uint32_t millisToRTCTicks(int milliseconds);
66+
void enableRTCInterrupt(int seconds);
67+
void enableAONGPIOInterrupt(int aon_gpio, int mode);
68+
void enableAONPTimerInterrrupt(int millis);
69+
static void resetAONPTimer();
70+
static void wakeFromRTC();
71+
void x86_C2Request();
72+
void x86_C2LPRequest();
73+
void (*pmCB)();
74+
#define RTC_ALARM_WAKEUP 0xFF
6875
#define RESET_BUTTON_WAKEUP 0xFE
6976
#endif
70-
7177
};
7278

7379
extern ArduinoLowPowerClass LowPower;

0 commit comments

Comments
 (0)