diff options
| author | Scott Shawcroft <scott.shawcroft@gmail.com> | 2016-12-13 16:09:00 -0800 |
|---|---|---|
| committer | Scott Shawcroft <scott.shawcroft@gmail.com> | 2016-12-13 16:09:00 -0800 |
| commit | 781633c716a2d0dc32ebf352fb5dd5ffdecad1d3 (patch) | |
| tree | e8e932c038ab666220d826f21b8d5f6bd0007b6f /atmel-samd | |
| parent | 9ad0da61348ab034ac762b42e6e080daaefe96fd (diff) | |
Fix up Analog classes: unify them at 16 bits and adds reference_voltage member
to make for easy conversion. Fixes #14.
Diffstat (limited to 'atmel-samd')
| -rw-r--r-- | atmel-samd/common-hal/nativeio/AnalogIn.c | 10 | ||||
| -rw-r--r-- | atmel-samd/common-hal/nativeio/AnalogOut.c | 3 |
2 files changed, 9 insertions, 4 deletions
diff --git a/atmel-samd/common-hal/nativeio/AnalogIn.c b/atmel-samd/common-hal/nativeio/AnalogIn.c index 592ba4ca8..0d5f98310 100644 --- a/atmel-samd/common-hal/nativeio/AnalogIn.c +++ b/atmel-samd/common-hal/nativeio/AnalogIn.c @@ -47,10 +47,10 @@ void common_hal_nativeio_analogin_construct(nativeio_analogin_obj_t* self, struct adc_config config_adc; adc_get_config_defaults(&config_adc); + config_adc.reference = ADC_REFERENCE_INTVCC1; + config_adc.gain_factor = ADC_GAIN_FACTOR_DIV2; config_adc.positive_input = self->pin->adc_input; - config_adc.resolution = ADC_RESOLUTION_CUSTOM; - config_adc.accumulate_samples = ADC_ACCUMULATE_SAMPLES_16; - config_adc.divide_result = ADC_DIVIDE_RESULT_16; + config_adc.resolution = ADC_RESOLUTION_16BIT; config_adc.clock_prescaler = ADC_CLOCK_PRESCALER_DIV128; adc_init(&self->adc_instance, ADC, &config_adc); @@ -82,3 +82,7 @@ uint16_t common_hal_nativeio_analogin_get_value(nativeio_analogin_obj_t *self) { adc_disable(&self->adc_instance); return data; } + +float common_hal_nativeio_analogin_get_reference_voltage(nativeio_analogin_obj_t *self) { + return 3.3f; +} diff --git a/atmel-samd/common-hal/nativeio/AnalogOut.c b/atmel-samd/common-hal/nativeio/AnalogOut.c index 958eb7e6a..df4cc44a2 100644 --- a/atmel-samd/common-hal/nativeio/AnalogOut.c +++ b/atmel-samd/common-hal/nativeio/AnalogOut.c @@ -67,5 +67,6 @@ void common_hal_nativeio_analogout_deinit(nativeio_analogout_obj_t *self) { void common_hal_nativeio_analogout_set_value(nativeio_analogout_obj_t *self, uint16_t value) { - dac_chan_write(&self->dac_instance, DAC_CHANNEL_0, value); + // Input is 16 bit but we only support 10 bit so we shift the input. + dac_chan_write(&self->dac_instance, DAC_CHANNEL_0, value >> 6); } |
