2 / 2 / 2
Регистрация: 05.09.2018
Сообщений: 156
|
||||||
1 | ||||||
Измерение нескольких каналов АЦП один раз за период сигнала запуска24.11.2020, 13:22. Показов 1393. Ответов 2
Всем привет!
Встал в тупик с частью программы Работаю с АЦП. Нужно произвести последовательное измерение 11 каналов. Сигналом запуска работы АЦП является передний фронт ШИМ-сигнала, который у меня выведен на ножку PB6. ШИМ сигнал управления реализован на 16-битном таймере 1, который выставлен в режиме Fast PWM Mode Частота ШИМа - 300 Гц; Скважность +(-) 98%. И вот по каждому переднему фронту этого сигнала надо запускать измерение АЦП (всех каналов). Каждое АЦП должно измериться только 1 раз за период. И закончится преобразование должно не по заднему фронту ШИМа, а как можно быстрее ( минимально возможное время после переднего фронта) Чтобы запускать АЦП по событию наступления переднего фронта, я использовал режим Auto trigger. В качестве источника (trigger source) указал Timer Overflow1, как раз тот таймер, где у меня управляющий ШИМ-сигнал. Как я понимаю свой код: - произошло прерывание по событию наступления переднего фронта ШИМа B; - Программа заходит в ADC_vect и последовательно меняя MUXы, измеряет все 11 АЦП, которые мне требуются. - выходит из прерывания и ждет следующий передний фронт. Но тут начинаются проблемы, точнее мое непонимание: - Как убедиться, что каждое АЦП измерилось только 1 раз? - Как убедиться, что АЦП измерилось как можно ближе к переднему фронту, а не где-то в другом месте? - В момент когда программа зашла в ADC_vect, она выполняет только тот код, котрый находится в прерывании, или будет реагировать на внешние сигналы? Код прилагаю:
0
|
24.11.2020, 13:22 | |
Ответы с готовыми решениями:
2
измерение частоты сигнала с помощью ацп Использование нескольких каналов АЦП AVR АЦП использование нескольких каналов Опрос нескольких регулярных каналов АЦП STM32F100 |
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
|
|
25.11.2020, 08:11 | 2 |
Однократный запуск спасет отца русской революции.
Смотрим даташит. Видим, что измерение происходит за 12 тактов процессора. При входе в прерывание автоматом сбрасывается бит общего разрешения прерываний. Пока его насильно не взвести или не придет команда RETI, процессору глубоко наплевать, что происходит снаружи.
0
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,889
|
|
25.11.2020, 11:01 | 3 |
0
|
25.11.2020, 11:01 | |
25.11.2020, 11:01 | |
Помогаю со студенческими работами здесь
3
Измерение значения АЦП при регистрации переднего фронта ШИМ-сигнала Считывание аналогового сигнала с нескольких каналов ATmega328 Один период сигнала Объединение нескольких Internet каналов в один Два сигнала АЦП на один ЖКИ во сколько раз уменьшится U_c за один период Сколько раз за один период гармонического колебания потенциальная энергия будет равна кинетической Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |