summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Moore <nick@zoic.org>2018-06-10 22:37:15 +1000
committerNick Moore <nick@zoic.org>2018-06-10 22:37:15 +1000
commitf72dcc64e6378a51045686c8b4fe820654c896ab (patch)
tree6ef67560601d31e36f210f6e2b91ff650c2ed434
parentb25cbd340ba9ba97e24e388928000264c8f499fc (diff)
Fixes #918 (PulseIn.get_paused) ...
-rw-r--r--ports/esp8266/common-hal/pulseio/PulseIn.c5
-rw-r--r--ports/esp8266/common-hal/pulseio/PulseIn.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/ports/esp8266/common-hal/pulseio/PulseIn.c b/ports/esp8266/common-hal/pulseio/PulseIn.c
index ba401a6e3..9720eaad5 100644
--- a/ports/esp8266/common-hal/pulseio/PulseIn.c
+++ b/ports/esp8266/common-hal/pulseio/PulseIn.c
@@ -91,6 +91,7 @@ void common_hal_pulseio_pulsein_construct(pulseio_pulsein_obj_t* self,
self->len = 0;
self->first_edge = true;
self->last_us = 0;
+ self->paused = false;
microcontroller_pin_register_intr_handler(self->pin->gpio_number,
pulseio_pulsein_interrupt_handler, (void *)self);
@@ -111,6 +112,7 @@ void common_hal_pulseio_pulsein_deinit(pulseio_pulsein_obj_t* self) {
void common_hal_pulseio_pulsein_pause(pulseio_pulsein_obj_t* self) {
pulsein_set_interrupt(self, false, false);
+ self->paused = true;
}
void common_hal_pulseio_pulsein_resume(pulseio_pulsein_obj_t* self,
@@ -133,6 +135,7 @@ void common_hal_pulseio_pulsein_resume(pulseio_pulsein_obj_t* self,
self->first_edge = true;
pulsein_set_interrupt(self, !self->idle_state, self->idle_state);
common_hal_mcu_enable_interrupts();
+ self->paused = false;
}
void common_hal_pulseio_pulsein_clear(pulseio_pulsein_obj_t* self) {
@@ -160,7 +163,7 @@ uint16_t common_hal_pulseio_pulsein_get_maxlen(pulseio_pulsein_obj_t* self) {
}
bool common_hal_pulseio_pulsein_get_paused(pulseio_pulsein_obj_t* self) {
- return false;
+ return self->paused;
}
uint16_t common_hal_pulseio_pulsein_get_len(pulseio_pulsein_obj_t* self) {
diff --git a/ports/esp8266/common-hal/pulseio/PulseIn.h b/ports/esp8266/common-hal/pulseio/PulseIn.h
index 4b00ec1d6..6319280e8 100644
--- a/ports/esp8266/common-hal/pulseio/PulseIn.h
+++ b/ports/esp8266/common-hal/pulseio/PulseIn.h
@@ -36,6 +36,7 @@ typedef struct {
uint16_t *buffer;
uint16_t maxlen;
bool idle_state;
+ bool paused;
volatile uint16_t start;
volatile uint16_t len;
volatile bool first_edge;