mirror of https://github.com/ARMmbed/mbed-os.git
[NRF51822] analog read - set channel
parent
a8b7f5df2c
commit
9a39c1ddee
|
@ -48,6 +48,7 @@ void analogin_init(analogin_t *obj, PinName pin) {
|
||||||
}
|
}
|
||||||
map++;
|
map++;
|
||||||
}
|
}
|
||||||
|
obj->adc_pin = (uint8_t)analogInputPin;
|
||||||
|
|
||||||
NRF_ADC->ENABLE = ADC_ENABLE_ENABLE_Enabled;
|
NRF_ADC->ENABLE = ADC_ENABLE_ENABLE_Enabled;
|
||||||
NRF_ADC->CONFIG = (ADC_CONFIG_RES_10bit << ADC_CONFIG_RES_Pos) |
|
NRF_ADC->CONFIG = (ADC_CONFIG_RES_10bit << ADC_CONFIG_RES_Pos) |
|
||||||
|
@ -58,6 +59,8 @@ void analogin_init(analogin_t *obj, PinName pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t analogin_read_u16(analogin_t *obj) {
|
uint16_t analogin_read_u16(analogin_t *obj) {
|
||||||
|
NRF_ADC->CONFIG &= ~ADC_CONFIG_PSEL_Msk;
|
||||||
|
NRF_ADC->CONFIG |= obj->adc_pin << ADC_CONFIG_PSEL_Pos;
|
||||||
NRF_ADC->TASKS_START = 1;
|
NRF_ADC->TASKS_START = 1;
|
||||||
while ( ( (NRF_ADC->BUSY & ADC_BUSY_BUSY_Msk) >> ADC_BUSY_BUSY_Pos) == ADC_BUSY_BUSY_Busy)
|
while ( ( (NRF_ADC->BUSY & ADC_BUSY_BUSY_Msk) >> ADC_BUSY_BUSY_Pos) == ADC_BUSY_BUSY_Busy)
|
||||||
{
|
{
|
||||||
|
|
|
@ -57,6 +57,7 @@ struct i2c_s {
|
||||||
|
|
||||||
struct analogin_s {
|
struct analogin_s {
|
||||||
ADCName adc;
|
ADCName adc;
|
||||||
|
uint8_t adc_pin;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct gpio_irq_s {
|
struct gpio_irq_s {
|
||||||
|
|
|
@ -95,7 +95,7 @@ void analogin_init(analogin_t *obj, PinName pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint32_t adc_read(analogin_t *obj) {
|
static inline uint32_t adc_read(analogin_t *obj) {
|
||||||
volatile uint32_t channels;
|
uint32_t channels;
|
||||||
|
|
||||||
__IO LPC_ADC0_Type *adc_reg = (obj->adc < ADC1_0) ? (__IO LPC_ADC0_Type*)(LPC_ADC0) : (__IO LPC_ADC0_Type*)(LPC_ADC1);
|
__IO LPC_ADC0_Type *adc_reg = (obj->adc < ADC1_0) ? (__IO LPC_ADC0_Type*)(LPC_ADC0) : (__IO LPC_ADC0_Type*)(LPC_ADC1);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue