реклама на сайте
подробности

 
 
> libopencm3 + stm32f4, ADC
Ekka
сообщение Apr 13 2018, 12:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Привет всем. Битый час сижу, не могу понять ПОЧЕМУ у меня в отладке значение с АЦП считывается нормально (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);
    }
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016