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

 
 
> STM32f4 discovery прерывания, Запутался в прерываниях, прошу помощи
Silber
сообщение Apr 23 2015, 14:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 24-02-15
Пользователь №: 85 339



в STM32CubeMX сгенерировал себе вот такой проект:
USB OTG FS(для передачи данных на пк через виртуальный ком-порт), TIM6, Синяя кнопка, +2 gpio пина для работы с ультразвуковым датчиком расстояния.
Цель программы - научиться считывать показания датчика. Как с ним работать: подать на пин Trig единицу длиной 10микроСек, засечь, сколько жду ответ от датчика по пину Echo. Преобразовать временной промежуток и получить расстояние до объекта. Все просто!
Как я хочу, чтобы работала программа: при нажатии на кнопку контроллер отправляет по usb мне расстояние до объекта. Алгоритм:
1)прерывание по нажатию на кнопку
2)запускается таймер, его источник - 48МГц, делитель 0, период 47. (чтобы каждую микросекунду он генерировал прерывание)
3)работа с сенсором //этот пункт сейчас не вызывает вопросов
4)отправка данных по usb
Данные по usb передаются нормально, но, если я включаю таймер, то USB виснет. Догадываюсь, что дело в прерываниях и их приоритетах. Приоритеты прерываний см на изображении. Что такое под-приоритет?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Silber
сообщение Apr 23 2015, 19:40
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 24-02-15
Пользователь №: 85 339



Ошибся в последнем предложении. Режим называется PWM Input mode:
This mode is a particular case of input capture mode. The procedure is the same except:
• Two ICx signals are mapped on the same TIx input.
• These 2 ICx signals are active on edges with opposite polarity.
• One of the two TIxFP signals is selected as trigger input and the slave mode controller
is configured in reset mode.
For example, you can measure the period (in TIMx_CCR1 register) and the duty cycle
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 24 2015, 05:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Silber @ Apr 23 2015, 22:40) *
Режим называется PWM Input mode:

Вам достаточно простого захвата переднего фронта пина Echo.

Цитата
Что такое под-приоритет?

Представьте: cpu находится в более приоритетном прерывании, за это время возникают два прерывания с одинаковым приоритетом пониже.
cpu заканчивает обработку приоритетного прерывания и что ему выполнять дальше? А дальше nvic смотрит есть два новых прерывания
с одинаковым приоритетом, из них он выбирает то, у которого под-приоритет выше. Если под-приоритеты равны, то nvic выбирает то, которое
стоит в таблице векторов прерываний раньше.

По сути под-приоритет в cortex это как приоритет в avr (если не заморачиваться с вложенными прерываниями) - сказать контроллеру прерываний
кого вызывать вперед при прочих равных.
Go to the top of the page
 
+Quote Post
Silber
сообщение Apr 24 2015, 06:09
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 24-02-15
Пользователь №: 85 339



Цитата(adnega @ Apr 24 2015, 08:36) *
Вам достаточно простого захвата переднего фронта пина Echo.


Представьте: cpu находится в более приоритетном прерывании, за это время возникают два прерывания с одинаковым приоритетом пониже.
cpu заканчивает обработку приоритетного прерывания и что ему выполнять дальше? А дальше nvic смотрит есть два новых прерывания
с одинаковым приоритетом, из них он выбирает то, у которого под-приоритет выше. Если под-приоритеты равны, то nvic выбирает то, которое
стоит в таблице векторов прерываний раньше.

По сути под-приоритет в cortex это как приоритет в avr (если не заморачиваться с вложенными прерываниями) - сказать контроллеру прерываний
кого вызывать вперед при прочих равных.

Еще раз спасибо. С avr я не знаком, да и с электроникой в целом. Мой путь - от высокоуровнего программирования к низкоуровнему на МК. STM32f4 мой первый МК
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 24 2015, 06:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Silber @ Apr 24 2015, 09:09) *
Мой путь - от высокоуровнего программирования к низкоуровнему на МК. STM32f4 мой первый МК

Ааа. Понятно. Тогда предупреждаю, что тут подход отличается.
Основная цель разработчика - по максимуму нагрузить богатую периферию.
Решать железные вопросы софтово - дурной тон в МК)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Silber   STM32f4 discovery прерывания   Apr 23 2015, 14:49
- - adnega   Цитата(Silber @ Apr 23 2015, 17:49) 2)зап...   Apr 23 2015, 16:10
|- - Silber   Цитата(adnega @ Apr 23 2015, 19:10) Тут в...   Apr 23 2015, 16:56
|- - adnega   Цитата(Silber @ Apr 23 2015, 19:56) А поч...   Apr 23 2015, 17:44
|- - Silber   Цитата(adnega @ Apr 23 2015, 20:44) Часто...   Apr 23 2015, 18:08
|- - Silber   Цитата(adnega @ Apr 24 2015, 09:32) Ааа. ...   Apr 24 2015, 11:04
- - esaulenka   Осциллографа под рукой нету? Моргания светодиода ...   Apr 24 2015, 12:24
- - Silber   Показания сняты успешно! Однако, не без загадо...   Apr 24 2015, 12:30
|- - esaulenka   Цитата(Silber @ Apr 24 2015, 15:30) Осцил...   Apr 24 2015, 12:58
- - esaulenka   Как нарисовано, так и работает. По входу "три...   Apr 24 2015, 12:39
|- - Silber   Цитата(esaulenka @ Apr 24 2015, 15:39) Ка...   Apr 24 2015, 12:50
- - Silber   ЦитатаНе понял, что это. Полная документация есть?...   Apr 24 2015, 13:07
- - esaulenka   Ну... Надо учитывать, что Шенжень находится достат...   Apr 24 2015, 13:25
- - Silber   Цитата(esaulenka @ Apr 24 2015, 16:25) А ...   Apr 24 2015, 14:39
- - esaulenka   Цитата(Silber @ Apr 24 2015, 17:39) А в ч...   Apr 27 2015, 08:45


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:21
Рейтинг@Mail.ru


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