2015-03-09 2 views
0

В настоящее время я пытаюсь реализовать прерывания на STM32L152. Я не использую стандартные периферийные библиотеки, потому что я нахожу их очень запутанными и трудными для того, чтобы опустить голову. Я еще не слишком компетентен с C для микроконтроллеров.C прерывания на Cortex M3

В настоящее время я делаю все через регистры. Есть ли способ реализовать прерывания в C-регистрах? Кажется, нет никакой информации, которая действительно имеет смысл. Я нашел, что обучение C было очень недоступным, в первую очередь, tbh.

Благодаря

+0

Что именно вы подразумеваете под «прерывными прерываниями»? Вы имеете в виду «зарегистрировать функтор для таблицы векторов прерываний»? Вы просто имеете в виду включение/отключение? Вы хотите знать, как использовать прерывания, генерируемые выводами ввода-вывода, которые могут вызвать их? Вы просто хотите знать, как привязываться к таким вещам, как таймеры? Нам нужно больше деталей о том, что именно вы пытаетесь сделать. – aruisdante

+0

Хорошо, извините за отсутствие разъяснений. Я хочу разбудить процессор из состояния низкого энергопотребления после нажатия кнопки. Я не знаю, с чего начать. Как мне это сделать? Я полностью понимаю понятия прерываний - просто найти документацию на самом деле, как это сделать, либо предполагает, что вы уже не знаете, как это сделать или не существует. –

+0

проблема, с которой вы сталкиваетесь, имеет меньше вещей, связанных с языком C, чем архитектура процессора. возможно, сначала вы можете начать с руководства по процессору. – HuStmpHrrr

ответ

1

Конечно, вы можете осуществить прерывание путем установки регистров.

  1. Регистры-значения указывают СТМ, как иметь дело с прерываниями, что прерывание разрешено, как прерывание-контроллер должен работать.

  2. Вам понадобится таблица прерываний-векторов. Когда происходит прерывание, программный счетчик будет установлен на конкретный адрес программной памяти. Там вы должны поместить команду перехода (ассемблер jmp) в вашу процедуру прерывания.

Вы должны прочитать главу 10 в this reference manual.

Надеюсь, это поможет.

Смежные вопросы