ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
336136
Ljutik1 (19.06.2012 18:06, просмотров: 1943)
Танцы с бубном. ATmega48 Господа, помогите. Чего-то никак не соображу. Компилятор CodeVision 2.04.4a программа - модем. Передатчик берет данные с UARTa, генерит 2 разные частоты (100кгц для 0 и 120кгц для 1). Приемник компаратором ловит и пихает в UART. вот кусок кода процедуры приемника: UART_RX_ENA (); data=UDR0; #asm ("sei"); status = 0; delay_us (4500); // задержка на принятие 1 байта status = UCSR0A; data=UDR0; UART_RX_DISA (); В процедуре обработки прерывания компаратора первой строкой стоит глобальное запрещение прерываний #asm("cli") По логике, после одного прерывания по компаратору, прием данных должен остановиться. Однако, данные принимает совершенно нормально. Специально проверил - прерывания больше нигде не включаются. Как такое может быть? Оно, конечно, можно забить и двигаться дальше. Только вот червячок точит...