ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
21 декабря
1483341 Топик полностью
Nikolay_Po (12.12.2024 16:05, просмотров: 46) ответил my504 на Спешу поделиться с коллегами по пескам. AT32F435. Работает связка TMR5->start->TMR20CH1->ADC1->DMA. В прерывании по DMA останавливаем TMR20. Проблема состояла в том, что работало только один раз. Потом транзакции прекращались и в прерывание по DMA код не влетал. Проблема разрешилась выключением/включением бита ADC1->ctrl2_bit.ocdmaen перед запуском очередной сессии DMA. Напомню, что этот бит переключает целевой флаг периферии (в данном случае АЦП) на
Спасибо. Хмм... Когда-то настраивал АЦП на STM32F103 и работу с DMA и injected channels. Посмотрел код - нет, прерывание DMA использовать не стал. Не получилось с DMA, может, похожая проблема. Не стал глубоко разбираться, и успешно настроил прерывание АЦП (мне всё равно нужно было выполнять обработку после каждого цикла опроса каналов). Комментарий из того кода: "DMA interrupt is not used in favor of ADC1 interrupt", хотя в прерывании АЦП разгребал данные из DMA.