[an error occurred while processing this directive]
|
У меня тема такая: Атмега работает с внешним CAN-контроллером, общается с ним по SPI, послать/принять одно сообщение при этом - немного длительный процесс.
Есть у меня прерывание, раз в милисекунду, в котором проверяется счтчик, если он истек, то надо послать сообщение. Прямо из этого прерывания я не хочу вызывать что-то типа SendMessages(), т.к. это займёт некоторое время, а в этот момент на очереди уже может стоять прерывание от CAN-контроллера по приёму сообщения - и принять его сейчас же важнее, чем сейчас же послать сообщение (по истекшему счетчику). Поэтому я хочу в прерывании 1мс, если счетчик истек, установить флаг, так чтоб после выхода сразу запустилось какое-либо прерывание, в котором я бы послал сообщение. А если на момент выхода ждёт обработки прерывание от CAN-контроллера по приёму, то оно выполнится первее, так как у него (это внешнее прерывание) приоритет больше.
Ну соответственно из главного цикла тоже хочется это прерывание запускать.
Вот такие дела.
E-mail: info@telesys.ru