git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4998 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
0403ccfd10
commit
567fd6ac12
|
@ -89,6 +89,7 @@ ADCDriver ADCD3;
|
||||||
*/
|
*/
|
||||||
static void adc_lld_vreg_on(ADCDriver *adcp) {
|
static void adc_lld_vreg_on(ADCDriver *adcp) {
|
||||||
|
|
||||||
|
adcp->adcm->CR = 0; /* RM 12.4.3.*/
|
||||||
adcp->adcm->CR = ADC_CR_ADVREGEN_0;
|
adcp->adcm->CR = ADC_CR_ADVREGEN_0;
|
||||||
#if STM32_ADC_DUAL_MODE
|
#if STM32_ADC_DUAL_MODE
|
||||||
adcp->adcs->CR = ADC_CR_ADVREGEN_0;
|
adcp->adcs->CR = ADC_CR_ADVREGEN_0;
|
||||||
|
@ -103,6 +104,7 @@ static void adc_lld_vreg_on(ADCDriver *adcp) {
|
||||||
*/
|
*/
|
||||||
static void adc_lld_vreg_off(ADCDriver *adcp) {
|
static void adc_lld_vreg_off(ADCDriver *adcp) {
|
||||||
|
|
||||||
|
adcp->adcm->CR = 0; /* RM 12.4.3.*/
|
||||||
adcp->adcm->CR = ADC_CR_ADVREGEN_1;
|
adcp->adcm->CR = ADC_CR_ADVREGEN_1;
|
||||||
#if STM32_ADC_DUAL_MODE
|
#if STM32_ADC_DUAL_MODE
|
||||||
adcp->adcs->CR = ADC_CR_ADVREGEN_1;
|
adcp->adcs->CR = ADC_CR_ADVREGEN_1;
|
||||||
|
@ -479,7 +481,7 @@ void adc_lld_start_conversion(ADCDriver *adcp) {
|
||||||
ccr |= ADC_CCR_DMACFG_CIRCULAR;
|
ccr |= ADC_CCR_DMACFG_CIRCULAR;
|
||||||
cfgr |= ADC_CFGR_CONT;
|
cfgr |= ADC_CFGR_CONT;
|
||||||
#else
|
#else
|
||||||
cfgr |= ADC_CFGR_CONT | ADC_CFGR_DMACFG | ADC_CFGR_DMAEN;
|
cfgr |= ADC_CFGR_CONT | ADC_CFGR_DMACFG_CIRCULAR | ADC_CFGR_DMAEN;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,9 @@
|
||||||
#define ADC_GRP2_BUF_DEPTH 16
|
#define ADC_GRP2_BUF_DEPTH 16
|
||||||
|
|
||||||
static adcsample_t samples1[ADC_GRP1_NUM_CHANNELS * ADC_GRP1_BUF_DEPTH];
|
static adcsample_t samples1[ADC_GRP1_NUM_CHANNELS * ADC_GRP1_BUF_DEPTH];
|
||||||
static adcsample_t samples2[ADC_GRP2_NUM_CHANNELS * ADC_GRP2_BUF_DEPTH];
|
//static adcsample_t samples2[ADC_GRP2_NUM_CHANNELS * ADC_GRP2_BUF_DEPTH];
|
||||||
|
|
||||||
|
#if 0
|
||||||
/*
|
/*
|
||||||
* ADC streaming callback.
|
* ADC streaming callback.
|
||||||
*/
|
*/
|
||||||
|
@ -44,6 +45,7 @@ static void adccallback(ADCDriver *adcp, adcsample_t *buffer, size_t n) {
|
||||||
ny += n;
|
ny += n;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void adcerrorcallback(ADCDriver *adcp, adcerror_t err) {
|
static void adcerrorcallback(ADCDriver *adcp, adcerror_t err) {
|
||||||
|
|
||||||
|
@ -61,15 +63,22 @@ static const ADCConversionGroup adcgrpcfg1 = {
|
||||||
ADC_GRP1_NUM_CHANNELS,
|
ADC_GRP1_NUM_CHANNELS,
|
||||||
NULL,
|
NULL,
|
||||||
adcerrorcallback,
|
adcerrorcallback,
|
||||||
0, /* CR1 */
|
0, /* CFGR */
|
||||||
ADC_CR2_SWSTART, /* CR2 */
|
0, /* TR1 */
|
||||||
ADC_SMPR1_SMP_AN11(ADC_SAMPLE_3),
|
0, /* CCR */
|
||||||
0, /* SMPR2 */
|
{ /* SMPR[2] */
|
||||||
ADC_SQR1_NUM_CH(ADC_GRP1_NUM_CHANNELS),
|
0,
|
||||||
0, /* SQR2 */
|
0
|
||||||
ADC_SQR3_SQ1_N(ADC_CHANNEL_IN11)
|
},
|
||||||
|
{ /* SQR[4] */
|
||||||
|
ADC_SQR1_SQ1_N(ADC_CHANNEL_IN7) | ADC_SQR1_SQ2_N(ADC_CHANNEL_IN8),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if 0
|
||||||
/*
|
/*
|
||||||
* ADC conversion group.
|
* ADC conversion group.
|
||||||
* Mode: Continuous, 16 samples of 8 channels, SW triggered.
|
* Mode: Continuous, 16 samples of 8 channels, SW triggered.
|
||||||
|
@ -91,6 +100,7 @@ static const ADCConversionGroup adcgrpcfg2 = {
|
||||||
ADC_SQR3_SQ4_N(ADC_CHANNEL_IN12) | ADC_SQR3_SQ3_N(ADC_CHANNEL_IN11) |
|
ADC_SQR3_SQ4_N(ADC_CHANNEL_IN12) | ADC_SQR3_SQ3_N(ADC_CHANNEL_IN11) |
|
||||||
ADC_SQR3_SQ2_N(ADC_CHANNEL_IN12) | ADC_SQR3_SQ1_N(ADC_CHANNEL_IN11)
|
ADC_SQR3_SQ2_N(ADC_CHANNEL_IN12) | ADC_SQR3_SQ1_N(ADC_CHANNEL_IN11)
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Red LEDs blinker thread, times are in milliseconds.
|
* Red LEDs blinker thread, times are in milliseconds.
|
||||||
|
@ -101,11 +111,12 @@ static msg_t Thread1(void *arg) {
|
||||||
(void)arg;
|
(void)arg;
|
||||||
chRegSetThreadName("blinker");
|
chRegSetThreadName("blinker");
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
palSetPad(GPIOD, GPIOD_LED5);
|
palSetPad(GPIOE, GPIOE_LED10_RED);
|
||||||
chThdSleepMilliseconds(500);
|
chThdSleepMilliseconds(500);
|
||||||
palClearPad(GPIOD, GPIOD_LED5);
|
palClearPad(GPIOE, GPIOE_LED10_RED);
|
||||||
chThdSleepMilliseconds(500);
|
chThdSleepMilliseconds(500);
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -138,7 +149,7 @@ int main(void) {
|
||||||
* Activates the ADC1 driver and the thermal sensor.
|
* Activates the ADC1 driver and the thermal sensor.
|
||||||
*/
|
*/
|
||||||
adcStart(&ADCD1, NULL);
|
adcStart(&ADCD1, NULL);
|
||||||
adcSTM32EnableTSVREFE();
|
// adcSTM32EnableTSVREFE();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Linear conversion.
|
* Linear conversion.
|
||||||
|
@ -149,15 +160,15 @@ int main(void) {
|
||||||
/*
|
/*
|
||||||
* Starts an ADC continuous conversion.
|
* Starts an ADC continuous conversion.
|
||||||
*/
|
*/
|
||||||
adcStartConversion(&ADCD1, &adcgrpcfg2, samples2, ADC_GRP2_BUF_DEPTH);
|
// adcStartConversion(&ADCD1, &adcgrpcfg2, samples2, ADC_GRP2_BUF_DEPTH);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Normal main() thread activity, in this demo it does nothing.
|
* Normal main() thread activity, in this demo it does nothing.
|
||||||
*/
|
*/
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
if (palReadPad(GPIOA, GPIOA_BUTTON)) {
|
if (palReadPad(GPIOA, GPIOA_BUTTON)) {
|
||||||
adcStopConversion(&ADCD1);
|
// adcStopConversion(&ADCD1);
|
||||||
adcSTM32DisableTSVREFE();
|
// adcSTM32DisableTSVREFE();
|
||||||
}
|
}
|
||||||
chThdSleepMilliseconds(500);
|
chThdSleepMilliseconds(500);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue