[NRF51822] analog read - set channel

pull/333/head
0xc0170 2014-05-27 12:57:45 +02:00
parent a8b7f5df2c
commit 9a39c1ddee
3 changed files with 5 additions and 1 deletions

View File

@ -48,6 +48,7 @@ void analogin_init(analogin_t *obj, PinName pin) {
}
map++;
}
obj->adc_pin = (uint8_t)analogInputPin;
NRF_ADC->ENABLE = ADC_ENABLE_ENABLE_Enabled;
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) {
NRF_ADC->CONFIG &= ~ADC_CONFIG_PSEL_Msk;
NRF_ADC->CONFIG |= obj->adc_pin << ADC_CONFIG_PSEL_Pos;
NRF_ADC->TASKS_START = 1;
while ( ( (NRF_ADC->BUSY & ADC_BUSY_BUSY_Msk) >> ADC_BUSY_BUSY_Pos) == ADC_BUSY_BUSY_Busy)
{

View File

@ -57,6 +57,7 @@ struct i2c_s {
struct analogin_s {
ADCName adc;
uint8_t adc_pin;
};
struct gpio_irq_s {

View File

@ -95,7 +95,7 @@ void analogin_init(analogin_t *obj, PinName pin) {
}
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);