Помогите разобраться с прерываниями в ATMEGA64 Есть три задачи: 1) Реалтаймовая работа, занимает 20 тактов, ведется в interrupt [TIM2_COMP] void timer2_comp_isr(void) прерывание с частотой 200 кГц 2) обработка - отображение результата, ведется в основном цикле программы, не мешат прерыванию.
3) Прием комманд по UART interrupt [USART0_RXC] void usart0_rx_isr(void) занимает остаточно много времени, но всегда успевает завершиться до прихода следующего байта (скорость 115.200)
Так вот, при подключении юарта реалтаймовая задача начинает глючть, т.е. прерывания начинают запаздывать. Почему? Приоритет таймер же выше? Как решить проблему? Переносить прием комманд в основной цикл не хочется, т.к. в основном цикле ость очень медленный вывод на экран.
|