diff options
| author | Glenn Ruben Bakke <glennbakke@gmail.com> | 2018-04-19 22:29:42 +0200 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2018-07-18 17:12:26 +1000 |
| commit | b7ce2f146013f5b599defe4d29b1155141dc00c0 (patch) | |
| tree | 4e2f255476e67cff0a7eb01924af48246854a7f4 | |
| parent | 6011441342f32ff644ad56abcf002d585124bd7c (diff) | |
nrf: Add support for reading output pin state
Current adoption on top of nrfx only reads the GPIO->IN register.
In order to read back an output state, nrf_gpio_pin_out_read has
to be called.
This patch concatinate the two read functions such that, if
either IN or OUT register has a value 1 it will return this,
else 0.
Updating lib/nrfx submodule to latest version of master to get
the new GPIO API to read pin direction.
(nrfx: d37b16f2b894b0928395f6f56ca741287a31a244)
| m--------- | lib/nrfx | 0 | ||||
| -rw-r--r-- | ports/nrf/mphalport.h | 2 |
2 files changed, 1 insertions, 1 deletions
diff --git a/lib/nrfx b/lib/nrfx -Subproject cf78ebfea1719d85cf4018fe6c08cc73fe5ec71 +Subproject d37b16f2b894b0928395f6f56ca741287a31a24 diff --git a/ports/nrf/mphalport.h b/ports/nrf/mphalport.h index 411e8f429..18ff454fe 100644 --- a/ports/nrf/mphalport.h +++ b/ports/nrf/mphalport.h @@ -64,7 +64,7 @@ const char * nrfx_error_code_lookup(uint32_t err_code); #define mp_hal_get_pin_obj(o) pin_find(o) #define mp_hal_pin_high(p) nrf_gpio_pin_set(p->pin) #define mp_hal_pin_low(p) nrf_gpio_pin_clear(p->pin) -#define mp_hal_pin_read(p) nrf_gpio_pin_read(p->pin) +#define mp_hal_pin_read(p) (nrf_gpio_pin_dir_get(p->pin) == NRF_GPIO_PIN_DIR_OUTPUT) ? nrf_gpio_pin_out_read(p->pin) : nrf_gpio_pin_read(p->pin) #define mp_hal_pin_write(p, v) do { if (v) { mp_hal_pin_high(p); } else { mp_hal_pin_low(p); } } while (0) #define mp_hal_pin_od_low(p) mp_hal_pin_low(p) #define mp_hal_pin_od_high(p) mp_hal_pin_high(p) |
