Я получаю данные через UART от другого AVR. Однако я занимаюсь другими вещами, поэтому не хочу постоянно опрашивать UART. Я знаю, что есть прерывания, но я вижу только одно для получения завершения, которое, я полагаю, все еще требует от меня опроса, чтобы завершить передачу.
10
Ответы:
На AVR есть векторы прерываний как для RXC, так и для TXC (завершены RX и TX). Вы никогда не должны опрашивать их, если вы не хотите.
У AVRFreaks есть хороший пост на эту тему, как и у производителя .
источник
Подпрограмма прерывания сохраняет данные в буфере (круговой буфер с указателями put и get отлично работает). Основной цикл проверяет, есть ли данные в буфере и, если они есть, удаляет их. Основной цикл может выполнять другие действия, но ему необходимо проверять и удалять данные до того, как буфер прерываний переполнится (когда пут встречается с get).
Он не скомпилируется, но это иллюстрирует метод.
источник