По сложившейся на 8-битниках практике есть два подхода к чтению UART 1. while(! UART_interrupt_flag), а сразу за ним анализ пришедшего символа. 2.По прерыванию кладем байт в буффер, сдвигаем указатель. Тут возможны два варианта обработки пакета: 2.1 Счет символов для пакета фиксированной длинны. 2.2 В процедуре прерывания проверка на стартовый или завершающий символ с выставлением флага Как усложненный вариант - поиск заданной последовательности. Все эти варианты проходились и для каждого известны стандартные решения. А вот сейчас понадобился прием сложных пакетов на SAM, очень хочеться воспользоваться PDC, однако не понятно с какой стороны взяться. Технически понятно инитим PDC, назначаем буфера, привязываем к UART и все данные сами падают нам в память... Однако эти данные потом нужно вытянуть и обработать. К какому событию привязаться, как искать стартовую последовательность. И не проще ли будет в данном случае воспользоваться старыми добрыми наработками с 51-x и AVR. За примеры и ссылки буду признателен крайне.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|