Code: Select all
static const ADCConversionGroup adcgrpcfg = {
TRUE,
ADC_GRP1_NUM_CHANNELS,
adcendcallback,
adcerrorcallback,
/* HW dependent part.*/
0,
ADC_CR2_SWSTART,
ADC_SMPR2_SMP_AN5(ADC_SAMPLE_56) |
ADC_SMPR2_SMP_AN6(ADC_SAMPLE_56) |
ADC_SMPR2_SMP_AN7(ADC_SAMPLE_56) |
ADC_SMPR2_SMP_AN8(ADC_SAMPLE_56) |
ADC_SMPR2_SMP_AN9(ADC_SAMPLE_56) ,
0,
ADC_SQR1_NUM_CH(ADC_GRP1_NUM_CHANNELS),
0,
ADC_SQR3_SQ1_N(ADC_CHANNEL_IN7) |
ADC_SQR3_SQ2_N(ADC_CHANNEL_IN8) |
ADC_SQR3_SQ3_N(ADC_CHANNEL_IN9) |
ADC_SQR3_SQ4_N(ADC_CHANNEL_IN5) |
ADC_SQR3_SQ5_N(ADC_CHANNEL_IN6) ,
};
void adcInit( void )
{
/*
* Initializes the ADC driver 1
*/
adcStart( &ADCD1, NULL );
adcStartConversion( &ADCD1,
&adcgrpcfg,
samples,
ADC_GRP1_BUF_DEPTH );
}
callbacks here
Code: Select all
/*
* ADC error conversion callback.
*/
static void adcerrorcallback(ADCDriver *adcp, adcerror_t err) {
(void)adcp;
(void)err;
}
/*
* ADC end conversion callback.
*/
void adcendcallback( ADCDriver *adcp, adcsample_t *buffer, size_t n )
{
(void) n;
(void)buffer;
/* Note, only in the ADC_COMPLETE state because the ADC driver fires an
intermediate callback when the buffer is half full.*/
if( adcp->state == ADC_COMPLETE )
{
}
}
When run the adcendcallback is continously called with adcp->state == ADC_ACTIVE
Nothing else in the system runs.