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

 
 
> Как послать программное прерывание?
inventor
сообщение May 19 2015, 10:28
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Вобщем задача такая:
есьт несколько устройств, которые работают по прерыванием,
мне нужно что то подобное функции raise()
для посылания сигнала (программного прерывания)
которая будет выполняться
приоритетом выше основной программы и ниже чем аппаратных прерываний.
Есть возможность это сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
inventor
сообщение May 19 2015, 11:29
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



не...так нельзя.
ADC собирает данные, я из отправляю в raise() задаче на sd карту.
если карта полудохлая - то время записи на нее может меняться.
я так понимаю можно пользоваться как то PendSV или SVC_handle как то
но можно его настроить, что его приоритет быль меньше чем у всего остального?
Go to the top of the page
 
+Quote Post
adnega
сообщение May 19 2015, 20:43
Сообщение #3


Гуру
******

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



Цитата(inventor @ May 19 2015, 14:29) *
если карта полудохлая - то время записи на нее может меняться.

Нет объективных причин ждать и ничего не делать пока карта готовится к записи.
У меня работа с sd-картой построена так, что в mainloop я вызываю асинхронные запросы для карты (выполняются очень быстро),
а она по результату выполнения вызывает callback. Вся основная работа выполнена через прерывания и DMA. Причем интерфейс
подключения хоть SDIO, хоть SPI. Советую подумать над архитектурой или задействовать RTOS. Ждать у моря погоды - дурной
тон в программировании.
Go to the top of the page
 
+Quote Post



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

 


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


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