Страница 1 из 1

Обработчики прерываний К1887ВЕ3Т Keil

Добавлено: 26 апр 2016, 17:52
frenele
Создал проект в Keil на микроконтроллере работает. :D Теперь задача написать любой обработчик прерывания, но не понятно где прописаны имена обработчиков прерываний. :? Смотрел файл "START167.A66", но не обнаружил. Для STM32 для меня всё понятно как писать оболочку обработчика прерываний. А вот для К1887ВЕ3Т непонятно. Помогите разобраться! Может какой пример скинете с работой прерываниями.

Re: Обработчики прерываний К1887ВЕ3Т Keil

Добавлено: 27 апр 2016, 09:32
tvs
У Keil довольно неплохой Help, посмотрите там. Обработчикам прерываний Вы сами даете имена, для Keil важен только номер прерывания, что в Assembler, что в C.

Код: Выделить всё

void CAN_OUT_MSG(void) interrupt 0x66
{
    P3 = ~0x0066;
    printf("\n interrupt 0x66 CAN_OUT_MSG\n");
}

Re: Обработчики прерываний К1887ВЕ3Т Keil

Добавлено: 27 апр 2016, 10:35
frenele
То есть как я понял в строчке "void CAN_OUT_MSG(void) interrupt 0x66" и есть адрес вектора прерывания как если писать на Assembler. Спасибо посмотрю Help. Опыт в Keil у меня только любительский. Вот и осваиваю.

Re: Обработчики прерываний К1887ВЕ3Т Keil

Добавлено: 27 апр 2016, 11:19
tvs
Нет, это номер прерывания, ни в коем случае не вектор.

Re: Обработчики прерываний К1887ВЕ3Т Keil

Добавлено: 27 апр 2016, 12:20
frenele
Спасибо я уже разобрался. Прерывания заработали. Да это порядковый номер прерывания.

void ASC0_Receive(void) interrupt 0x2B
{
P2 ^= 0x4000;
}

void ASC0_Transmit(void) interrupt 0x2A
{
tx_uart_byte('$');
}