Исходя из моего другого вопроса, Помогите оптимизировать этот код C (AVR)? :) , я только что понял, что на самом деле не знаю, как реализовать ISR в сборке в моей C-программе. Я гуглил, но не нашел ничего слишком полезного.
По сути, я хочу настроить все остальное в моем C-проекте (включая регистры для запуска прерывания), но я хочу, чтобы прерывание выполняло некоторый код сборки, который я написал.
Я использую AVR studio 6 в Windows, если это поможет. Мне сказали, что мне нужно использовать .s
файлы, но кроме этого я не совсем уверен, что делать. Является ли базовая структура следующей?
#include <avr\io.h>
TIMER1_COMPA_vect:
; assembly instructions here
Если я хочу, чтобы сборка запускалась при срабатывании прерывания TIMER1_COMPA_vect (это имя ISR в C). Или я совсем не в курсе? Каков основной шаблон того, что мне нужно сделать? Или, если это глупый вопрос, есть ли ссылка, где я могу найти дополнительную информацию?