Обработка прерывания работы микроконтроллера PIC 16F684

StackOverflow https://stackoverflow.com/questions/2014003

Вопрос

Я только что закончил курс микропроцессоров в колледже, всего несколько недель назад, там мы программировали только на ассемблере.Мы узнали довольно много (ИМХО) о прерываниях.

Вот мой вопрос:Я программирую на C, используя компилятор HiTech для 16F684, в разделе datasheet обсуждаются прерывания (Спецификация PIC 16F684 Раздел 12.4) в нем говорится, что программа перейдет к вектору прерывания 0x0004.Используя сборку в моем классе микропроцессоров, мы бы просто настроили инструкцию .org, указывающую на этот адрес, и записали необходимую сборку ниже, чтобы при возникновении прерывания она переходила туда и выполнялась.Я могу разобраться с этим на ассемблере, но когда я программирую на C, я не верю, что у меня есть контроль над тем, где части программы размещаются в памяти, что представляет проблему.Я не могу понять, как размещать команды при прерывании в C.

Пожалуйста, дайте мне знать, если мне нужно будет уточнить!

Это было полезно?

Решение

Этот часто задаваемый вопрос от Microchip имеет некоторую информацию об использовании прерываний в HiTech C.

Другие советы

HiTech C расширяет язык C с помощью interrupt тип функции:

void interrupt my_interrupt_handler (void) {
    handle_interrupts_here();
}

Вам действительно следует получить руководство по компилятору.Я полагаю, что руководство для Pic-lite доступно для скачивания бесплатно, по крайней мере, так было, когда я загружал свою копию некоторое время назад в 2001 году.

Вам придется покопаться в документации HiTech, но часто компиляторы используют специальные ключевые слова для определения функций прерывания.Компилятору или системе времени выполнения приходится иметь дело с функцией, вызываемой прерыванием, специально:В дополнение к настройке вектора компилятор (или система выполнения) должен сохранить все регистры.Возможно, ему не придется делать этого для обычной функции, не требующей прерывания.

Руководство станет вашим другом.

В Компилятор CCS для PICs использует директивы компилятора #INT_* или "атрибуты" функций обработки прерываний для различных источников прерываний.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top