|
@@ -74,16 +74,11 @@ int main(void) {
|
|
|
|
|
|
/* Activates the ADC1 driver and the temperature sensor. */
|
|
/* Activates the ADC1 driver and the temperature sensor. */
|
|
adcStart(&ADCD1, NULL);
|
|
adcStart(&ADCD1, NULL);
|
|
- adcStartConversion(&ADCD1, &adcgrpcfg1, ADC_Data, ADC_GRP1_BUF_DEPTH);
|
|
|
|
|
|
+ adcStartConversionI(&ADCD1, &adcgrpcfg1, ADC_Data, ADC_GRP1_BUF_DEPTH);
|
|
|
|
|
|
/* Starting GPT3 driver, it is used for triggering the ADC. */
|
|
/* Starting GPT3 driver, it is used for triggering the ADC. */
|
|
gptStart(&GPTD3, &gptcfg1);
|
|
gptStart(&GPTD3, &gptcfg1);
|
|
gptStartContinuousI(&GPTD3, 100);
|
|
gptStartContinuousI(&GPTD3, 100);
|
|
-// GPTD1.tim->CCMR1 = 100; // 1Mhz/100=10kHz=100 us
|
|
|
|
-// GPTD1.tim->EGR = STM32_TIM_EGR_CC1G; // Capture/Compare 1 generation
|
|
|
|
-// GPTD1.tim->CCMR1= (STM32_TIM_CCMR1_OC1CE | STM32_TIM_CCMR1_OC1M(3));
|
|
|
|
-// GPTD1.tim->CCER = STM32_TIM_CCER_CC1E;
|
|
|
|
- //?GPTD1.tim->BDTR = STM32_TIM_BDTR_MOE;
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Buttons
|
|
* Buttons
|
|
@@ -133,9 +128,9 @@ int main(void) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
*/
|
|
- chsnprintf(buf, 22, "U = %u mV", Voltage);
|
|
|
|
|
|
+ chsnprintf(buf, 22, "U = %4u mV", Voltage);
|
|
ST7735_WriteString(0, LCD_LINE_3, buf, LiberM_7x10, Orange, Black);
|
|
ST7735_WriteString(0, LCD_LINE_3, buf, LiberM_7x10, Orange, Black);
|
|
- adcStartConversion(&ADCD1, &adcgrpcfg1, ADC_Data, ADC_GRP1_BUF_DEPTH);
|
|
|
|
|
|
+ //adcStartConversion(&ADCD1, &adcgrpcfg1, ADC_Data, ADC_GRP1_BUF_DEPTH);
|
|
chThdSleepMilliseconds(500);
|
|
chThdSleepMilliseconds(500);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -237,11 +232,10 @@ static void ADC_cb(ADCDriver *adcp) {
|
|
uint32_t adc_buf = 0;
|
|
uint32_t adc_buf = 0;
|
|
|
|
|
|
for (i=0; i<ADC_GRP1_BUF_DEPTH; i++) {
|
|
for (i=0; i<ADC_GRP1_BUF_DEPTH; i++) {
|
|
-// adc_buf += ADC_Data[i] * ADC_Data[i];
|
|
|
|
- adc_buf += ADC_Data[i];
|
|
|
|
|
|
+ adc_buf += ADC_Data[i] * ADC_Data[i];
|
|
}
|
|
}
|
|
-/*
|
|
|
|
// adc_buf - sum of squares. SQRT:
|
|
// adc_buf - sum of squares. SQRT:
|
|
|
|
+ adc_buf /= ADC_GRP1_BUF_DEPTH;
|
|
uint32_t val = 0;
|
|
uint32_t val = 0;
|
|
uint32_t step = 1;
|
|
uint32_t step = 1;
|
|
while (step < adc_buf) {
|
|
while (step < adc_buf) {
|
|
@@ -249,10 +243,12 @@ static void ADC_cb(ADCDriver *adcp) {
|
|
step += 2;
|
|
step += 2;
|
|
val ++;
|
|
val ++;
|
|
}
|
|
}
|
|
-*/
|
|
|
|
|
|
+
|
|
// transform ADC values to real voltage
|
|
// transform ADC values to real voltage
|
|
- adc_buf /= ADC_GRP1_BUF_DEPTH;
|
|
|
|
- adc_buf *= ADC_REF_VOLTAGE;
|
|
|
|
- adc_buf /= 4096;
|
|
|
|
- Voltage = adc_buf;
|
|
|
|
|
|
+ val *= ADC_REF_VOLTAGE;
|
|
|
|
+ val += 2048;
|
|
|
|
+ val /= 4096;
|
|
|
|
+ Voltage = val;
|
|
|
|
+
|
|
|
|
+ //adcStartConversionI(&ADCD1, &adcgrpcfg1, ADC_Data, ADC_GRP1_BUF_DEPTH);
|
|
}
|
|
}
|