Привет всем. Битый час сижу, не могу понять ПОЧЕМУ у меня в отладке значение с АЦП считывается нормально (0-4090),
а как только я запускаю программу - там 42.
Подозреваю, конечно, что в отладке я медленнее код прохожу. Может, я настраиваю не правильно,
или флаг не тот сбрасываю или проверяю? Что я делаю не так?
Код
void adc_init(void)
{
rcc_periph_clock_enable(RCC_ADC1);
gpio_mode_setup(PLC_AIN1_PORT, GPIO_MODE_ANALOG, GPIO_PUPD_PULLDOWN, PLC_AIN1_PIN);
nvic_set_priority(NVIC_ADC_IRQ, 0);
nvic_enable_irq(NVIC_ADC_IRQ);
rcc_periph_clock_enable(RCC_ADC1);
adc_power_off(ADC1);
adc_enable_scan_mode(ADC1);
adc_enable_eoc_interrupt(ADC1);
adc_set_right_aligned(ADC1);
adc_set_sample_time_on_all_channels(ADC1, ADC_SMPR_SMP_3CYC);
adc_set_continuous_conversion_mode(ADC1);
adc_power_on(ADC1);
my_delay(800000);
channel_array[0] = 1;
adc_set_regular_sequence(ADC1,2,channel_array);
adc_start_conversion_regular(ADC1);
}
uint32_t adc1_result=0;
void adc_isr(void)
{
if(adc_eoc(ADC1) == 1)
{
ADC_SR(ADC1) &= ~ADC_SR_EOC;
adc1_result = adc_read_regular(ADC1);
}
}