/* We use event to signal the end of conversion */
-static Event data_ready;
+static Event adc_data_ready;
/* The last converted data */
static uint32_t data;
*/
static DECLARE_ISR(adc_conversion_end_irq)
{
- data = 0;
if (ADC_ISR & BV(ADC_DRDY))
{
data = ADC_LDATA;
- event_do(&data_ready);
+ event_do(&adc_data_ready);
}
}
uint16_t adc_hw_read(void)
{
ADC_CR = BV(ADC_START);
- event_wait(&data_ready);
+ event_wait(&adc_data_ready);
return(data);
}
IRQ_ASSERT_ENABLED();
/* Initialize the dataready event */
- event_initGeneric(&data_ready);
+ event_initGeneric(&adc_data_ready);
/* Clock ADC peripheral */
pmc_periphEnable(ADC_ID);
/* Reset adc controller */
- ADC_CR = ADC_SWRST;
+ ADC_CR |= BV(ADC_SWRST);
/*
* Set adc mode register:
ADC_MR |= ((ADC_PRESCALER << ADC_PRESCALER_SHIFT) & ADC_PRESCALER_MASK);
LOG_INFO("prescaler[%ld]\n", ADC_PRESCALER);
ADC_MR |= ((CONFIG_ADC_SUT << ADC_STARTUP_SHIFT) & ADC_STARTUP_MASK);
- LOG_INFO("starup[%d]\n", ADC_SUT512);
+ LOG_INFO("starup[%d]\n", CONFIG_ADC_SUT);
ADC_MR |= ((CONFIG_ADC_STTLING << ADC_SETTLING_SHIFT) & ADC_SETTLING_MASK);
- LOG_INFO("sttime[%d]\n", ADC_AST17);
+ LOG_INFO("sttime[%d]\n", CONFIG_ADC_STTLING);
ADC_MR |= ((CONFIG_ADC_TRACKTIM << ADC_TRACKTIM_SHIFT) & ADC_TRACKTIM_MASK);
- LOG_INFO("tracking[%d]\n", 0);
+ LOG_INFO("tracking[%d]\n", CONFIG_ADC_TRACKTIM);
ADC_MR |= ((CONFIG_ADC_TRANSFER << ADC_TRANSFER_SHIFT) & ADC_TRANSFER_MASK);
- LOG_INFO("tranfer[%d]\n", 1);
+ LOG_INFO("tranfer[%d]\n", CONFIG_ADC_TRANSFER);
/* Register and enable irq for adc. */
sysirq_setHandler(INT_ADC, adc_conversion_end_irq);