Контроллер прерываний: различия между версиями
Материал из MIK32 микроконтроллер
Sh-sergey (обсуждение | вклад) (init) |
Sh-sergey (обсуждение | вклад) Нет описания правки Метка: визуальный редактор отключён |
||
Строка 16: | Строка 16: | ||
https://disk.yandex.ru/d/tpft5MKx1UggXA | https://disk.yandex.ru/d/tpft5MKx1UggXA | ||
<syntaxhighlight lang="python" line> | |||
def quick_sort(arr): | |||
less = [] | |||
pivot_list = [] | |||
more = [] | |||
if len(arr) <= 1: | |||
return arr | |||
else: | |||
pass | |||
</syntaxhighlight> |
Версия от 13:02, 17 марта 2022
Данная статья рассматривает настройку контроллера прерываний. Ниже даны основные моменты, на которые следует обратить внимание, далее дан пример с обработкой прерывания от 32-х разрядного таймера.
Важный момент
Контроллер прерываний не является векторным, при возникновении прерывания из любого источника он всегда вызовет один обработчик.
Обратите внимание
Для работы контроллера прерываний требуется следующее:
- Включить тактирование EPIC на шине APB_M (в блоке Power Manager);
- Разрешить прерывания по необходимым линиям в блоке EPIC (контроллер прерываний);
- Разрешить аппаратные прерывания (установить соответствующие регистры состояния в ядре).
В периферийных блоках также требуется разрешить прерывания по определенным событиям.
Пример обработки прерывания:
https://disk.yandex.ru/d/tpft5MKx1UggXA
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass