summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Ruben Bakke <glennbakke@gmail.com>2018-04-12 23:02:19 +0200
committerDamien George <damien.p.george@gmail.com>2018-07-18 17:12:26 +1000
commit434bd568fe3c614bb5f3c11ec24abfcf99505bb6 (patch)
tree50e218073b69dc08a09af79872f53edfc8e74216
parent3209a13bf56677345f2045375610aa1d21603c2c (diff)
nrf/adc: Allow for external use of new and value read function.
-rw-r--r--ports/nrf/modules/machine/adc.c17
-rw-r--r--ports/nrf/modules/machine/adc.h4
2 files changed, 16 insertions, 5 deletions
diff --git a/ports/nrf/modules/machine/adc.c b/ports/nrf/modules/machine/adc.c
index 64f9f54dc..66897426d 100644
--- a/ports/nrf/modules/machine/adc.c
+++ b/ports/nrf/modules/machine/adc.c
@@ -148,10 +148,7 @@ STATIC mp_obj_t machine_adc_make_new(const mp_obj_type_t *type, size_t n_args, s
return MP_OBJ_FROM_PTR(self);
}
-/// \method value()
-/// Read adc level.
-mp_obj_t machine_adc_value(mp_obj_t self_in) {
- machine_adc_obj_t *self = self_in;
+int16_t machine_adc_value_read(machine_adc_obj_t * adc_obj) {
#if NRF51
nrf_adc_value_t value = 0;
@@ -168,8 +165,18 @@ mp_obj_t machine_adc_value(mp_obj_t self_in) {
#else // NRF52
nrf_saadc_value_t value = 0;
- nrfx_saadc_sample_convert(self->id, &value);
+ nrfx_saadc_sample_convert(adc_obj->id, &value);
#endif
+ return value;
+}
+
+
+/// \method value()
+/// Read adc level.
+mp_obj_t machine_adc_value(mp_obj_t self_in) {
+ machine_adc_obj_t *self = self_in;
+
+ int16_t value = machine_adc_value_read(self);
return MP_OBJ_NEW_SMALL_INT(value);
}
diff --git a/ports/nrf/modules/machine/adc.h b/ports/nrf/modules/machine/adc.h
index 980fe8e25..cefccff6b 100644
--- a/ports/nrf/modules/machine/adc.h
+++ b/ports/nrf/modules/machine/adc.h
@@ -27,8 +27,12 @@
#ifndef ADC_H__
#define ADC_H__
+typedef struct _machine_adc_obj_t machine_adc_obj_t;
+
extern const mp_obj_type_t machine_adc_type;
void adc_init0(void);
+int16_t machine_adc_value_read(machine_adc_obj_t * adc_obj);
+
#endif // ADC_H__