diff options
| author | Glenn Ruben Bakke <glennbakke@gmail.com> | 2017-03-06 23:05:03 +0100 |
|---|---|---|
| committer | Glenn Ruben Bakke <glennbakke@gmail.com> | 2017-03-06 23:05:03 +0100 |
| commit | 5acba015ef391f66c8699b7fb187cc8db0c8bd0a (patch) | |
| tree | e962594e6e63ef699c8758c990611e5dc7480bdb | |
| parent | 7c50cd26a2225158a7229af1c23e21999fe0dd9c (diff) | |
nrf5/modules/rtc: Adding support for stopping and restarting rtc (if periodic) for all the instances of RTC.
| -rw-r--r-- | nrf5/modules/machine/rtc.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/nrf5/modules/machine/rtc.c b/nrf5/modules/machine/rtc.c index 4a9c4977b..d7559ae8c 100644 --- a/nrf5/modules/machine/rtc.c +++ b/nrf5/modules/machine/rtc.c @@ -52,24 +52,27 @@ STATIC machine_rtc_obj_t machine_rtc_obj[] = { }; STATIC void hal_interrupt_handle(NRF_RTC_Type * p_instance) { + const machine_rtc_obj_t * self = NULL; if (p_instance == RTC0) { - const machine_rtc_obj_t *self = &machine_rtc_obj[0]; + self = &machine_rtc_obj[0]; mp_call_function_0(self->callback); - - hal_rtc_stop(&self->rtc->config); - if (self->mode == 1) { - hal_rtc_start(&self->rtc->config, self->period); - } } else if (p_instance == RTC1) { - const machine_rtc_obj_t *self = &machine_rtc_obj[1]; + self = &machine_rtc_obj[1]; mp_call_function_0(self->callback); } #if NRF52 else if (p_instance == RTC2) { - const machine_rtc_obj_t *self = &machine_rtc_obj[2]; + self = &machine_rtc_obj[2]; mp_call_function_0(self->callback); } #endif + + if (self != NULL) { + hal_rtc_stop(&self->rtc->config); + if (self->mode == 1) { + hal_rtc_start(&self->rtc->config, self->period); + } + } } void rtc_init0(void) { |
