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

 
 
 
Reply to this topicStart new topic
> "конфликт" timer - analog watchdog
rich.richmond
сообщение Dec 1 2013, 13:20
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 21-11-13
Пользователь №: 79 311



Добрый день!

Помогите пожалуйста разобраться вот в каком вопросе.
Программирую STM32F303VC через Atollic Studio с использованием "стандартных" библиотек.

Принцип работы устройства предполагает формирование прямоугольных импульсов тока заданной длительности (1 - 2 мс), затем пауза около 5 мс и повторение импульса.

В программе реализуется это так - таймер отсчитывет интервалы времени и при переполнении "включает заданную ножку контроллера" (ток начинает протекать через нагрузку);
аналоговый watchdog следит за величиной тока.
Получается все как нужно.

Вся проблема заключается в формировании заднего фронта тока и конфликте прерываний (если я это правильно понимаю).
Например, analog watchdog "говорит", что ток находится в заданном диапазоне и на выходе остается логическая единица.
Но в этот момент времени запускается прерывание от таймера (более приоритетное и ставит прерывание аналогового watchdoga в очередь) и отключает watchdog.
Но "единичка" записанная на соответствующий выход продолжает висеть.

Подскажите пожалуйста, как вывести прерывание watchdoga из "очереди", чтобы контроллер к нему не возвращался после обработки более приоритетного прерывания.
ADC_ClearITPendingBit (ADC1, ADC_IT_AWD1) не помогает и контроллер все равно возвращается к обработке прерывания.


Go to the top of the page
 
+Quote Post

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

 


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


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