Babadag 0 18 июля, 2016 Опубликовано 18 июля, 2016 (изменено) · Жалоба Пытаюсь запустить АЦП (канал 0) от таймера 2. Не работает... Код // Инициализация АЦП RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; ADC1->CR2 |= ADC_CR2_ADON; ADC1->CR2 |= ADC_CR2_CAL; while ((ADC1->CR2 & ADC_CR2_CAL) != 0); ADC1->CR1 |= ADC_CR1_EOCIE; NVIC_EnableIRQ(ADC1_2_IRQn); ADC1->CR2 |= ADC_CR2_EXTTRIG | ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1; ... // Инициализация таймера RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; TIM2->PSC = 32000 - 1; TIM2->ARR = 199; TIM2->CCMR1 |= TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1; TIM2->CCR2 = TIM2->ARR; TIM2->CR1 |= TIM_CR1_CEN; Запуск АЦП в ручном режиме (через повторный ADC_CR2_ADON) работает. Если у таймера разрешить прерывание CC2IF — срабатывает когда надо. В чём ошибка? Похоже, проблема в настройке события CC2 от таймера. АЦП прекрасно запускается от таймера 3 при такой инициализации: RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; TIM3->PSC = 32000 - 1; TIM3->ARR = 199; TIM3->CR2 |= TIM_CR2_MMS_1; TIM3->CR1 |= TIM_CR1_CEN; Тогда как следует настраивать таймер 2? Ну блиииин... Всё настроил, а включить забыл. Проблема решилась добавлением строчки TIM2->CCER |= TIM_CCER_CC2E; Надо пойти пообедать =) Изменено 18 июля, 2016 пользователем Babadag Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex-lab 5 10 апреля, 2019 Опубликовано 10 апреля, 2019 · Жалоба Пытаюсь запустить АЦП от Timer1_CC2 на STM32F103C8. Все выходы таймера1 (7 штук) работают, сигнал идет исправно. В ручную, по прерыванию таймера, АЦП запускается без нареканий по любому из событий, однако автоматика не работает. Хочется разобраться. В даташите, для выбора источника внешнего запуска АЦП есть несколько вариантов (см. рис). Например, запуск от TIM1_ CC2 производится при EXTSEL = 001. EXTTRIG = 1. В регистре Timer1 CR2 среди возможных событий генерации внешнего вызова TRGO можно так же выбрать OC2REF, MMS = 101. Однако запуска не происходит. Пробовал запускать первым каналом таймера CC1, ситуация та же. Правильно ли такая согласованная настройка EXTSEL и MMS? Несколько странным кажется то, что если в вышеописаных условиях установить бит SWSTART, то произойдет обычное преобразование, даже при том, что EXTSEL отличен от 111. Благодарю за совет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex-lab 5 10 апреля, 2019 Опубликовано 10 апреля, 2019 · Жалоба Надо было неделю промаяться, запостить и сразу найти ошибку... настройки таймера и АЦП все верные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 10 апреля, 2019 Опубликовано 10 апреля, 2019 · Жалоба Какая волшебная тема - как только сюда напишешь о своей проблеме, она сразу решается! :) Надо заложить в закаладки! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться