Skip to content
This repository was archived by the owner on Oct 28, 2023. It is now read-only.

Commit f67323e

Browse files
authored
Merge pull request SHA2017-badge#191 from SHA2017-badge/revert-159-upy_use_powerdown_mgr
Revert "Upy use powerdown mgr"
2 parents 8096b30 + 5626620 commit f67323e

File tree

2 files changed

+23
-41
lines changed

2 files changed

+23
-41
lines changed

esp32/main.c

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
#include "badge_first_run.h"
5858
#include <badge_input.h>
5959
#include <badge.h>
60-
#include "powerdown.h"
6160

6261
// MicroPython runs as a task under FreeRTOS
6362
#define MP_TASK_PRIORITY (ESP_TASK_PRIO_MIN + 1)
@@ -141,36 +140,6 @@ void do_bpp_bgnd() {
141140
esp_restart();
142141
}
143142

144-
//PowerDownManager callback. If all objects that call into the powerdown manager are OK to sleep,
145-
//it will calculate the time it can sleep and the mode to wake up in.
146-
void do_deep_sleep(int delayMs, void *arg, PowerMode mode) {
147-
PowerMode currMode=(PowerMode)arg;
148-
delayMs-=8000; //to compensate for startup delay
149-
if (delayMs<0) delayMs=0;
150-
if (currMode==mode && delayMs<5000) return; //not worth sleeping
151-
152-
printf("Sleeping for %d ms...\n", delayMs);
153-
154-
//Shutdown anything running
155-
if (currMode==POWER_MODE_BPP) {
156-
bpp_shutdown();
157-
}
158-
159-
//Select wake mode
160-
uint8_t rtcmodebit=0;
161-
if (mode==POWER_MODE_BPP) rtcmodebit=2;
162-
if (mode==POWER_MODE_UPY) rtcmodebit=0;
163-
esp_rtcmem_write(0, rtcmodebit);
164-
esp_rtcmem_write(1, ~rtcmodebit);
165-
166-
// TODO the wake on touch should be in badge_input_init
167-
esp_deep_sleep_enable_ext0_wakeup(GPIO_NUM_25 , 0);
168-
// FIXME don't use hardcoded GPIO_NUM_25
169-
esp_deep_sleep_enable_timer_wakeup(delayMs*1000);
170-
esp_deep_sleep_start();
171-
}
172-
173-
174143
void app_main(void) {
175144
badge_check_first_run();
176145
badge_base_init();
@@ -191,22 +160,20 @@ void app_main(void) {
191160
badge_init();
192161
if (badge_input_button_state == 0) {
193162
printf("Starting bpp.\n");
194-
powerDownMgrInit(do_deep_sleep, (void*)POWER_MODE_BPP, POWER_MODE_BPP, true);
195163
do_bpp_bgnd();
196164
} else {
197-
printf("Touch wake after bpp.\n");
198-
powerDownMgrInit(do_deep_sleep, (void*)POWER_MODE_UPY, POWER_MODE_UPY, false);
199-
xTaskCreateStaticPinnedToCore(mp_task, "mp_task", MP_TASK_STACK_LEN, NULL, MP_TASK_PRIORITY,
200-
&mp_task_stack[0], &mp_task_tcb, 0);
201-
}
165+
printf("Touch wake after bpp.\n");
166+
xTaskCreateStaticPinnedToCore(mp_task, "mp_task", MP_TASK_STACK_LEN, NULL, MP_TASK_PRIORITY,
167+
&mp_task_stack[0], &mp_task_tcb, 0);
168+
}
202169
break;
203170
#endif
171+
204172
case 3:
205173
badge_first_run();
206174
}
207175

208176
} else {
209-
powerDownMgrInit(do_deep_sleep, (void*)POWER_MODE_UPY, POWER_MODE_UPY, false);
210177
xTaskCreateStaticPinnedToCore(mp_task, "mp_task", MP_TASK_STACK_LEN, NULL, MP_TASK_PRIORITY,
211178
&mp_task_stack[0], &mp_task_tcb, 0);
212179
}

esp32/modmachine.c

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
#include "extmod/machine_spi.h"
4646
#include "modmachine.h"
4747
#include "machine_rtc.h"
48-
#include "powerdown.h"
4948

5049
#if MICROPY_PY_MACHINE
5150

@@ -90,9 +89,25 @@ STATIC mp_obj_t machine_deepsleep(size_t n_args, const mp_obj_t *pos_args, mp_ma
9089

9190
mp_int_t expiry = args[ARG_sleep_ms].u_int;
9291

93-
//Let powerdown manager handle the actual power down stuff
94-
powerCanSleepFor((int)machine_init, expiry);
92+
if (expiry != 0) {
93+
esp_deep_sleep_enable_timer_wakeup(expiry * 1000);
94+
}
95+
96+
if (machine_rtc_config.ext0_pin != -1) {
97+
esp_deep_sleep_enable_ext0_wakeup(machine_rtc_config.ext0_pin, machine_rtc_config.ext0_level ? 1 : 0);
98+
}
99+
100+
if (machine_rtc_config.ext1_pins != 0) {
101+
esp_deep_sleep_enable_ext1_wakeup(
102+
machine_rtc_config.ext1_pins,
103+
machine_rtc_config.ext1_level ? ESP_EXT1_WAKEUP_ANY_HIGH : ESP_EXT1_WAKEUP_ALL_LOW);
104+
}
105+
106+
if (machine_rtc_config.wake_on_touch) {
107+
esp_deep_sleep_enable_touchpad_wakeup();
108+
}
95109

110+
esp_deep_sleep_start();
96111
return mp_const_none;
97112
}
98113

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy