ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
1406316 Топик полностью
my504 (22.02.2024 10:18, просмотров: 84) ответил Nikolay_Po на Этот последний канал в тройке из старой тройки или из новой? Можно проверить, подав на все три канала одинаковую медленную пилу.
Ну в общем разобрался. Причина в следующем. Когда в прерывании по ДМА я останавливаю TMR2 он остается в позиции на самом конце своего периода (я первым делом в прерывании останавливаю его, иначе он успевает выйти на следующий период). И когда я готовлю его запуск в следующем кадре, то обнуляю тело таймера (для синхронизма кадров), что приводит к формированию ФРОНТА в каналах таймера. И этот фронт запускает АЦП. Поэтому, как только я разрешал работу ДМА в очередном кадре, 

триггер ДМА в АЦП уже был взведен и крайние измерения (те самые, произведенные после ресета тела таймера по сути где попало) тут же летят в массив ДМА в его нулевой индекс. Лечение проблемы очень простое. Нужно по завершении сессии ДМА отключить АЦП от ДМА соответствующим битом и включить эту связь только перед самым стартом сессии.