From 8eaf2b0c1933fa4d0bef2786647b0eb0a586f605 Mon Sep 17 00:00:00 2001 From: microDev <70126934+microDev1@users.noreply.github.com> Date: Fri, 18 Dec 2020 12:54:36 +0530 Subject: implement touch alarm --- locale/circuitpython.pot | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'locale/circuitpython.pot') diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index d64cff185..63407f52b 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-14 12:59-0500\n" +"POT-Creation-Date: 2020-12-18 12:42+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1144,6 +1144,7 @@ msgstr "" #: ports/atmel-samd/common-hal/audioio/AudioOut.c #: ports/atmel-samd/common-hal/touchio/TouchIn.c +#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c #: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c #: shared-module/rgbmatrix/RGBMatrix.c msgid "Invalid pin" -- cgit v1.2.3 From ecd7c0878eaf7038317c5c59c6040f588093fa69 Mon Sep 17 00:00:00 2001 From: microDev <70126934+microDev1@users.noreply.github.com> Date: Sat, 19 Dec 2020 20:54:36 +0530 Subject: expose wake pin parameter and more tweaks --- locale/circuitpython.pot | 10 +++++++- ports/esp32s2/common-hal/alarm/__init__.c | 12 ++++++++- ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c | 17 ++++--------- shared-bindings/alarm/touch/TouchAlarm.c | 31 +++++++++++++++++++++-- 4 files changed, 54 insertions(+), 16 deletions(-) (limited to 'locale/circuitpython.pot') diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index 63407f52b..593e955f2 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-18 12:42+0530\n" +"POT-Creation-Date: 2020-12-18 20:40+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1463,6 +1463,10 @@ msgstr "" msgid "Only one alarm.time alarm can be set." msgstr "" +#: ports/esp32s2/common-hal/alarm/__init__.c +msgid "Only one alarm.touch alarm can be set." +msgstr "" + #: shared-module/displayio/ColorConverter.c msgid "Only one color can be transparent at a time" msgstr "" @@ -1837,6 +1841,10 @@ msgstr "" msgid "Total data to write is larger than outgoing_packet_length" msgstr "" +#: ports/esp32s2/common-hal/alarm/__init__.c +msgid "TouchAlarm not available in light sleep" +msgstr "" + #: py/obj.c msgid "Traceback (most recent call last):\n" msgstr "" diff --git a/ports/esp32s2/common-hal/alarm/__init__.c b/ports/esp32s2/common-hal/alarm/__init__.c index bdac2edc6..79c245704 100644 --- a/ports/esp32s2/common-hal/alarm/__init__.c +++ b/ports/esp32s2/common-hal/alarm/__init__.c @@ -103,6 +103,7 @@ mp_obj_t common_hal_alarm_get_wake_alarm(void) { // Set up light sleep or deep sleep alarms. STATIC void _setup_sleep_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) { bool time_alarm_set = false; + bool touch_alarm_set = false; alarm_time_time_alarm_obj_t *time_alarm = MP_OBJ_NULL; for (size_t i = 0; i < n_alarms; i++) { @@ -115,7 +116,16 @@ STATIC void _setup_sleep_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t time_alarm = MP_OBJ_TO_PTR(alarms[i]); time_alarm_set = true; } else if (MP_OBJ_IS_TYPE(alarms[i], &alarm_touch_touchalarm_type)) { - alarm_touch_touchalarm_set_alarm(MP_OBJ_TO_PTR(alarms[i])); + if (!touch_alarm_set) { + if (deep_sleep) { + alarm_touch_touchalarm_set_alarm(MP_OBJ_TO_PTR(alarms[i])); + touch_alarm_set = true; + } else { + mp_raise_NotImplementedError(translate("TouchAlarm not available in light sleep")); + } + } else { + mp_raise_ValueError(translate("Only one alarm.touch alarm can be set.")); + } } } diff --git a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c index 56085c529..a2fda8e78 100644 --- a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c +++ b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c @@ -35,6 +35,7 @@ void common_hal_alarm_touch_touchalarm_construct(alarm_touch_touchalarm_obj_t *s if (pin->touch_channel == TOUCH_PAD_MAX) { mp_raise_ValueError(translate("Invalid pin")); } + claim_pin(pin); self->pin = pin; } @@ -64,15 +65,15 @@ mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t return alarm; } -static uint16_t sleep_touch_pin; +static touch_pad_t touch_channel = TOUCH_PAD_MAX; void alarm_touch_touchalarm_set_alarm(alarm_touch_touchalarm_obj_t *self) { - sleep_touch_pin |= 1 << self->pin->number; + touch_channel = (touch_pad_t)self->pin->number; esp_sleep_enable_touchpad_wakeup(); esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); } -static void configure_sleep_touch_pin(touch_pad_t touch_channel) { +void alarm_touch_touchalarm_prepare_for_deep_sleep(void) { // intialize touchpad peripherals_touch_init(touch_channel); @@ -88,18 +89,10 @@ static void configure_sleep_touch_pin(touch_pad_t touch_channel) { touch_pad_sleep_set_threshold(touch_channel, touch_value * 0.1); //10% } -void alarm_touch_touchalarm_prepare_for_deep_sleep(void) { - for (uint8_t i = 1; i <= 14; i++) { - if ((sleep_touch_pin & 1 << i) != 0) { - configure_sleep_touch_pin((touch_pad_t)i); - } - } -} - bool alarm_touch_touchalarm_woke_us_up(void) { return false; } void alarm_touch_touchalarm_reset(void) { - sleep_touch_pin = 0; + touch_channel = TOUCH_PAD_MAX; } diff --git a/shared-bindings/alarm/touch/TouchAlarm.c b/shared-bindings/alarm/touch/TouchAlarm.c index 8ee1bc75a..4259b71bd 100644 --- a/shared-bindings/alarm/touch/TouchAlarm.c +++ b/shared-bindings/alarm/touch/TouchAlarm.c @@ -27,13 +27,18 @@ #include "shared-bindings/alarm/touch/TouchAlarm.h" #include "shared-bindings/board/__init__.h" +#include "py/objproperty.h" + //| class TouchAlarm: //| """Trigger an alarm when touch is detected.""" //| //| def __init__(self, *pin: microcontroller.Pin) -> None: -//| """Create an alarm that will be triggered when the -//| given pin is touched. +//| """Create an alarm that will be triggered when the given pin is touched. +//| The alarm is not active until it is passed to an `alarm`-enabling function, such as +//| `alarm.light_sleep_until_alarms()` or `alarm.exit_and_deep_sleep_until_alarms()`. //| +//| :param microcontroller.Pin pin: The pin to monitor. On some ports, the choice of pin +//| may be limited due to hardware restrictions, particularly for deep-sleep alarms. //| """ //| ... //| @@ -57,8 +62,30 @@ STATIC mp_obj_t alarm_touch_touchalarm_make_new(const mp_obj_type_t *type, return MP_OBJ_FROM_PTR(self); } +//| pin: microcontroller.Pin +//| """The trigger pin.""" +//| +STATIC mp_obj_t alarm_touch_touchalarm_obj_get_pin(mp_obj_t self_in) { + alarm_touch_touchalarm_obj_t *self = MP_OBJ_TO_PTR(self_in); + return MP_OBJ_FROM_PTR(self->pin); +} +MP_DEFINE_CONST_FUN_OBJ_1(alarm_touch_touchalarm_get_pin_obj, alarm_touch_touchalarm_obj_get_pin); + +const mp_obj_property_t alarm_touch_touchalarm_pin_obj = { + .base.type = &mp_type_property, + .proxy = {(mp_obj_t)&alarm_touch_touchalarm_get_pin_obj, + (mp_obj_t)&mp_const_none_obj, + (mp_obj_t)&mp_const_none_obj}, +}; + +STATIC const mp_rom_map_elem_t alarm_touch_touchalarm_locals_dict_table[] = { + { MP_ROM_QSTR(MP_QSTR_pin), MP_ROM_PTR(&alarm_touch_touchalarm_pin_obj) }, +}; +STATIC MP_DEFINE_CONST_DICT(alarm_touch_touchalarm_locals_dict, alarm_touch_touchalarm_locals_dict_table); + const mp_obj_type_t alarm_touch_touchalarm_type = { { &mp_type_type }, .name = MP_QSTR_TouchAlarm, .make_new = alarm_touch_touchalarm_make_new, + .locals_dict = (mp_obj_t)&alarm_touch_touchalarm_locals_dict, }; -- cgit v1.2.3 From c7f68022efa1306b0c7cb2fa47dcc84dbca2c605 Mon Sep 17 00:00:00 2001 From: microDev <70126934+microDev1@users.noreply.github.com> Date: Wed, 30 Dec 2020 22:11:22 +0530 Subject: add pretend-to-sleep functionality --- locale/circuitpython.pot | 6 +- ports/esp32s2/common-hal/alarm/__init__.c | 13 +--- ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c | 81 ++++++++++++++++++++--- ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h | 4 +- ports/esp32s2/common-hal/touchio/TouchIn.c | 8 +-- ports/esp32s2/peripherals/pins.h | 2 +- ports/esp32s2/peripherals/touch.c | 11 ++- ports/esp32s2/peripherals/touch.h | 3 +- 8 files changed, 90 insertions(+), 38 deletions(-) (limited to 'locale/circuitpython.pot') diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index 593e955f2..b9cf5bdcf 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-18 20:40+0530\n" +"POT-Creation-Date: 2020-12-22 22:54+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1463,7 +1463,7 @@ msgstr "" msgid "Only one alarm.time alarm can be set." msgstr "" -#: ports/esp32s2/common-hal/alarm/__init__.c +#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c msgid "Only one alarm.touch alarm can be set." msgstr "" @@ -1841,7 +1841,7 @@ msgstr "" msgid "Total data to write is larger than outgoing_packet_length" msgstr "" -#: ports/esp32s2/common-hal/alarm/__init__.c +#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c msgid "TouchAlarm not available in light sleep" msgstr "" diff --git a/ports/esp32s2/common-hal/alarm/__init__.c b/ports/esp32s2/common-hal/alarm/__init__.c index 79c245704..9e5772eac 100644 --- a/ports/esp32s2/common-hal/alarm/__init__.c +++ b/ports/esp32s2/common-hal/alarm/__init__.c @@ -103,7 +103,6 @@ mp_obj_t common_hal_alarm_get_wake_alarm(void) { // Set up light sleep or deep sleep alarms. STATIC void _setup_sleep_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) { bool time_alarm_set = false; - bool touch_alarm_set = false; alarm_time_time_alarm_obj_t *time_alarm = MP_OBJ_NULL; for (size_t i = 0; i < n_alarms; i++) { @@ -115,23 +114,13 @@ STATIC void _setup_sleep_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t } time_alarm = MP_OBJ_TO_PTR(alarms[i]); time_alarm_set = true; - } else if (MP_OBJ_IS_TYPE(alarms[i], &alarm_touch_touchalarm_type)) { - if (!touch_alarm_set) { - if (deep_sleep) { - alarm_touch_touchalarm_set_alarm(MP_OBJ_TO_PTR(alarms[i])); - touch_alarm_set = true; - } else { - mp_raise_NotImplementedError(translate("TouchAlarm not available in light sleep")); - } - } else { - mp_raise_ValueError(translate("Only one alarm.touch alarm can be set.")); - } } } if (time_alarm_set) { alarm_time_timealarm_set_alarm(time_alarm); } + alarm_touch_touchalarm_set_alarm(deep_sleep, n_alarms, alarms); } STATIC void _idle_until_alarm(void) { diff --git a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c index a2fda8e78..f5497af47 100644 --- a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c +++ b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c @@ -27,9 +27,12 @@ #include "shared-bindings/alarm/touch/TouchAlarm.h" #include "shared-bindings/microcontroller/__init__.h" +#include "esp_sleep.h" #include "peripherals/touch.h" +#include "supervisor/esp_port.h" -#include "esp_sleep.h" +static volatile bool woke_up = false; +static touch_pad_t touch_channel = TOUCH_PAD_MAX; void common_hal_alarm_touch_touchalarm_construct(alarm_touch_touchalarm_obj_t *self, const mcu_pin_obj_t *pin) { if (pin->touch_channel == TOUCH_PAD_MAX) { @@ -39,7 +42,7 @@ void common_hal_alarm_touch_touchalarm_construct(alarm_touch_touchalarm_obj_t *s self->pin = pin; } -mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *alarms) { +mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(const size_t n_alarms, const mp_obj_t *alarms) { // First, check to see if we match any given alarms. for (size_t i = 0; i < n_alarms; i++) { if (MP_OBJ_IS_TYPE(alarms[i], &alarm_touch_touchalarm_type)) { @@ -47,8 +50,6 @@ mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t } } - gpio_num_t pin_number = esp_sleep_get_touchpad_wakeup_status(); - alarm_touch_touchalarm_obj_t *alarm = m_new_obj(alarm_touch_touchalarm_obj_t); alarm->base.type = &alarm_touch_touchalarm_type; alarm->pin = NULL; @@ -56,7 +57,7 @@ mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t // Map the pin number back to a pin object. for (size_t i = 0; i < mcu_pin_globals.map.used; i++) { const mcu_pin_obj_t* pin_obj = MP_OBJ_TO_PTR(mcu_pin_globals.map.table[i].value); - if (pin_obj->number == pin_number) { + if (pin_obj->touch_channel == touch_channel) { alarm->pin = mcu_pin_globals.map.table[i].value; break; } @@ -65,16 +66,67 @@ mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t return alarm; } -static touch_pad_t touch_channel = TOUCH_PAD_MAX; +// This is used to wake the main CircuitPython task. +void touch_interrupt(void *arg) { + (void) arg; + woke_up = true; + BaseType_t task_wakeup; + vTaskNotifyGiveFromISR(circuitpython_task, &task_wakeup); + if (task_wakeup) { + portYIELD_FROM_ISR(); + } +} -void alarm_touch_touchalarm_set_alarm(alarm_touch_touchalarm_obj_t *self) { - touch_channel = (touch_pad_t)self->pin->number; - esp_sleep_enable_touchpad_wakeup(); - esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); +void alarm_touch_touchalarm_set_alarm(const bool deep_sleep, const size_t n_alarms, const mp_obj_t *alarms) { + bool touch_alarm_set = false; + alarm_touch_touchalarm_obj_t *touch_alarm = MP_OBJ_NULL; + + for (size_t i = 0; i < n_alarms; i++) { + if (MP_OBJ_IS_TYPE(alarms[i], &alarm_touch_touchalarm_type)) { + if (!touch_alarm_set) { + if (deep_sleep) { + touch_alarm = MP_OBJ_TO_PTR(alarms[i]); + touch_alarm_set = true; + } else { + mp_raise_NotImplementedError(translate("TouchAlarm not available in light sleep")); + } + } else { + mp_raise_ValueError(translate("Only one alarm.touch alarm can be set.")); + } + } + } + if (!touch_alarm_set) { + return; + } + + touch_channel = touch_alarm->pin->touch_channel; + + // configure interrupt for pretend to deep sleep + // this will be disabled if we actually deep sleep + + // intialize touchpad + peripherals_touch_reset(); + peripherals_touch_never_reset(true); + peripherals_touch_init(touch_channel); + + // wait for touch data to reset + mp_hal_delay_ms(10); + + // configure trigger threshold + uint32_t touch_value; + touch_pad_read_benchmark(touch_channel, &touch_value); + touch_pad_set_thresh(touch_channel, touch_value * 0.1); //10% + + // configure touch interrupt + touch_pad_timeout_set(true, SOC_TOUCH_PAD_THRESHOLD_MAX); + touch_pad_isr_register(touch_interrupt, NULL, TOUCH_PAD_INTR_MASK_ALL); + touch_pad_intr_enable(TOUCH_PAD_INTR_MASK_ACTIVE | TOUCH_PAD_INTR_MASK_INACTIVE | TOUCH_PAD_INTR_MASK_TIMEOUT); } void alarm_touch_touchalarm_prepare_for_deep_sleep(void) { // intialize touchpad + peripherals_touch_never_reset(false); + peripherals_touch_reset(); peripherals_touch_init(touch_channel); // configure touchpad for sleep @@ -84,15 +136,22 @@ void alarm_touch_touchalarm_prepare_for_deep_sleep(void) { // wait for touch data to reset mp_hal_delay_ms(10); + // configure trigger threshold uint32_t touch_value; touch_pad_sleep_channel_read_smooth(touch_channel, &touch_value); touch_pad_sleep_set_threshold(touch_channel, touch_value * 0.1); //10% + + // enable touchpad wakeup + esp_sleep_enable_touchpad_wakeup(); + esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); } bool alarm_touch_touchalarm_woke_us_up(void) { - return false; + return woke_up; } void alarm_touch_touchalarm_reset(void) { + woke_up = false; touch_channel = TOUCH_PAD_MAX; + peripherals_touch_never_reset(false); } diff --git a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h index aa1c27fea..755a3977a 100644 --- a/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h +++ b/ports/esp32s2/common-hal/alarm/touch/TouchAlarm.h @@ -36,9 +36,9 @@ typedef struct { } alarm_touch_touchalarm_obj_t; // Find the alarm object that caused us to wake up or create an equivalent one. -mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *alarms); +mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(const size_t n_alarms, const mp_obj_t *alarms); // Check for the wake up alarm from pretend deep sleep. -void alarm_touch_touchalarm_set_alarm(alarm_touch_touchalarm_obj_t *self); +void alarm_touch_touchalarm_set_alarm(const bool deep_sleep, const size_t n_alarms, const mp_obj_t *alarms); void alarm_touch_touchalarm_prepare_for_deep_sleep(void); bool alarm_touch_touchalarm_woke_us_up(void); void alarm_touch_touchalarm_reset(void); diff --git a/ports/esp32s2/common-hal/touchio/TouchIn.c b/ports/esp32s2/common-hal/touchio/TouchIn.c index afce8e72d..401b84d5c 100644 --- a/ports/esp32s2/common-hal/touchio/TouchIn.c +++ b/ports/esp32s2/common-hal/touchio/TouchIn.c @@ -27,12 +27,11 @@ #include "shared-bindings/touchio/TouchIn.h" #include "py/runtime.h" -#include "driver/touch_pad.h" #include "peripherals/touch.h" static uint16_t get_raw_reading(touchio_touchin_obj_t *self) { uint32_t touch_value; - touch_pad_read_raw_data((touch_pad_t)self->pin->touch_channel, &touch_value); + touch_pad_read_raw_data(self->pin->touch_channel, &touch_value); if (touch_value > UINT16_MAX) { return UINT16_MAX; } @@ -47,14 +46,11 @@ void common_hal_touchio_touchin_construct(touchio_touchin_obj_t* self, claim_pin(pin); // initialize touchpad - peripherals_touch_init((touch_pad_t)pin->touch_channel); + peripherals_touch_init(pin->touch_channel); // wait for touch data to reset mp_hal_delay_ms(10); - // Initial values for pins will vary, depending on what peripherals the pins - // share on-chip. - // Set a "touched" threshold not too far above the initial value. // For simple finger touch, the values may vary as much as a factor of two, // but for touches using fruit or other objects, the difference is much less. diff --git a/ports/esp32s2/peripherals/pins.h b/ports/esp32s2/peripherals/pins.h index c78eb8385..dc28385bd 100644 --- a/ports/esp32s2/peripherals/pins.h +++ b/ports/esp32s2/peripherals/pins.h @@ -44,7 +44,7 @@ typedef struct { gpio_num_t number; uint8_t adc_index:2; uint8_t adc_channel:6; - uint8_t touch_channel; + touch_pad_t touch_channel; } mcu_pin_obj_t; extern const mcu_pin_obj_t pin_GPIO0; diff --git a/ports/esp32s2/peripherals/touch.c b/ports/esp32s2/peripherals/touch.c index 3f496addd..6cf33b2bd 100644 --- a/ports/esp32s2/peripherals/touch.c +++ b/ports/esp32s2/peripherals/touch.c @@ -24,18 +24,25 @@ * THE SOFTWARE. */ +#include "components/soc/include/hal/gpio_types.h" +// above include fixes build error in idf@v4.2 #include "peripherals/touch.h" static bool touch_inited = false; +static bool touch_never_reset = false; void peripherals_touch_reset(void) { - if (touch_inited) { + if (touch_inited && !touch_never_reset) { touch_pad_deinit(); touch_inited = false; } } -void peripherals_touch_init(touch_pad_t touchpad) { +void peripherals_touch_never_reset(const bool enable) { + touch_never_reset = enable; +} + +void peripherals_touch_init(const touch_pad_t touchpad) { if (!touch_inited) { touch_pad_init(); touch_pad_set_fsm_mode(TOUCH_FSM_MODE_TIMER); diff --git a/ports/esp32s2/peripherals/touch.h b/ports/esp32s2/peripherals/touch.h index d9e0bd5fc..218045f39 100644 --- a/ports/esp32s2/peripherals/touch.h +++ b/ports/esp32s2/peripherals/touch.h @@ -30,6 +30,7 @@ #include "driver/touch_pad.h" extern void peripherals_touch_reset(void); -extern void peripherals_touch_init(touch_pad_t touchpad); +extern void peripherals_touch_never_reset(const bool enable); +extern void peripherals_touch_init(const touch_pad_t touchpad); #endif // MICROPY_INCLUDED_ESP32S2_PERIPHERALS_TOUCH_HANDLER_H -- cgit v1.2.3 From f87ce01b8f451be00a1cf9b546ecd9919cf2148c Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Mon, 4 Jan 2021 12:55:39 -0600 Subject: make translate --- locale/circuitpython.pot | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'locale/circuitpython.pot') diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index 880b1c74c..f319b82f8 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-22 22:54+0530\n" +"POT-Creation-Date: 2021-01-04 12:55-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1863,10 +1863,6 @@ msgstr "" msgid "Total data to write is larger than outgoing_packet_length" msgstr "" -#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c -msgid "TouchAlarm not available in light sleep" -msgstr "" - #: py/obj.c msgid "Traceback (most recent call last):\n" msgstr "" @@ -2502,6 +2498,10 @@ msgstr "" msgid "data must be of equal length" msgstr "" +#: extmod/ulab/code/ndarray.c +msgid "data type not understood" +msgstr "" + #: py/parsenum.c msgid "decimal numbers not supported" msgstr "" @@ -2812,7 +2812,7 @@ msgid "input and output shapes are not compatible" msgstr "" #: extmod/ulab/code/ulab_create.c -msgid "input argument must be an integer or a 2-tuple" +msgid "input argument must be an integer, a tuple, or a list" msgstr "" #: extmod/ulab/code/fft/fft.c @@ -3055,6 +3055,10 @@ msgstr "" msgid "maxiter should be > 0" msgstr "" +#: extmod/ulab/code/numerical/numerical.c +msgid "median argument must be an ndarray" +msgstr "" + #: py/runtime.c #, c-format msgid "memory allocation failed, allocating %u bytes" @@ -3284,10 +3288,6 @@ msgstr "" msgid "operation is implemented for 1D Boolean arrays only" msgstr "" -#: extmod/ulab/code/numerical/numerical.c -msgid "operation is not implemented for flattened array" -msgstr "" - #: extmod/ulab/code/numerical/numerical.c msgid "operation is not implemented on ndarrays" msgstr "" @@ -3631,6 +3631,10 @@ msgstr "" msgid "too many arguments provided with the given format" msgstr "" +#: extmod/ulab/code/ulab_create.c +msgid "too many dimensions" +msgstr "" + #: extmod/ulab/code/ndarray.c msgid "too many indices" msgstr "" @@ -3640,6 +3644,10 @@ msgstr "" msgid "too many values to unpack (expected %d)" msgstr "" +#: extmod/ulab/code/approx/approx.c +msgid "trapz is defined for 1D arrays" +msgstr "" + #: extmod/ulab/code/approx/approx.c msgid "trapz is defined for 1D arrays of equal length" msgstr "" @@ -3648,10 +3656,6 @@ msgstr "" msgid "trigger level must be 0 or 1" msgstr "" -#: extmod/ulab/code/linalg/linalg.c -msgid "tuple index out of range" -msgstr "" - #: py/obj.c msgid "tuple/list has wrong length" msgstr "" -- cgit v1.2.3