nrf: Cleanup AnalogOut and throw an exception in constructor
The nRF MCUs do not support analog output. Throwing an exception in the constructor will stop users from creating an instance of the AnalogOut class. In the future we can ifdef-out the whole class so it is not available in the module at all.
This commit is contained in:
parent
6c5cb01b4a
commit
021df5d3d3
@ -34,43 +34,17 @@
|
|||||||
|
|
||||||
|
|
||||||
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self, const mcu_pin_obj_t *pin) {
|
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self, const mcu_pin_obj_t *pin) {
|
||||||
// if (pin->pin != PIN_PA02) {
|
mp_raise_RuntimeError("AnalogOut functionality not supported");
|
||||||
// mp_raise_ValueError("AnalogOut not supported on given pin");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// struct dac_config config_dac;
|
|
||||||
// dac_get_config_defaults(&config_dac);
|
|
||||||
// config_dac.reference = DAC_REFERENCE_AVCC;
|
|
||||||
// enum status_code status = dac_init(&self->dac_instance, DAC, &config_dac);
|
|
||||||
// if (status != STATUS_OK) {
|
|
||||||
// mp_raise_OSError(MP_EIO);
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// claim_pin(pin);
|
|
||||||
//
|
|
||||||
// struct dac_chan_config config_analogout_chan;
|
|
||||||
// dac_chan_get_config_defaults(&config_analogout_chan);
|
|
||||||
// dac_chan_set_config(&self->dac_instance, DAC_CHANNEL_0, &config_analogout_chan);
|
|
||||||
// dac_chan_enable(&self->dac_instance, DAC_CHANNEL_0);
|
|
||||||
//
|
|
||||||
// dac_enable(&self->dac_instance);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool common_hal_analogio_analogout_deinited(analogio_analogout_obj_t *self) {
|
bool common_hal_analogio_analogout_deinited(analogio_analogout_obj_t *self) {
|
||||||
return self->deinited;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_analogio_analogout_deinit(analogio_analogout_obj_t *self) {
|
void common_hal_analogio_analogout_deinit(analogio_analogout_obj_t *self) {
|
||||||
// if (common_hal_analogio_analogout_deinited(self)) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// dac_disable(&self->dac_instance);
|
|
||||||
// dac_chan_disable(&self->dac_instance, DAC_CHANNEL_0);
|
|
||||||
// reset_pin(PIN_PA02);
|
|
||||||
// self->deinited = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_analogio_analogout_set_value(analogio_analogout_obj_t *self, uint16_t value) {
|
void common_hal_analogio_analogout_set_value(analogio_analogout_obj_t *self, uint16_t 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);
|
|
||||||
}
|
}
|
||||||
|
@ -27,16 +27,10 @@
|
|||||||
#ifndef MICROPY_INCLUDED_NRF_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
#ifndef MICROPY_INCLUDED_NRF_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
||||||
#define MICROPY_INCLUDED_NRF_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
#define MICROPY_INCLUDED_NRF_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
||||||
|
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
|
||||||
|
|
||||||
//#include "asf/sam0/drivers/dac/dac.h"
|
|
||||||
|
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
mp_obj_base_t base;
|
mp_obj_base_t base;
|
||||||
// struct dac_module dac_instance;
|
|
||||||
bool deinited;
|
|
||||||
} analogio_analogout_obj_t;
|
} analogio_analogout_obj_t;
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_NRF_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
#endif // MICROPY_INCLUDED_NRF_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
||||||
|
Loading…
Reference in New Issue
Block a user