Merge pull request #333 from 0xc0170/dev_nrf51_adc_read

[NRF51822] analog read - set channel
pull/334/head
Bogdan Marinescu 2014-05-27 12:54:12 +01:00
commit bd83615ac5
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);