Классная штука, но до сих пор не пришел к реализованному (рабочему) алгоритму программы.
Понимаю, что должно примерно быть так:
1. ПРишел байт по урату, сработало прерывание.
2. в обработчике обрабатываем байт, складируя в свой приемный буфер
3. дальше должна быть машина состояния, типа
жду начала посылки, получил - переходит в след. состояние.
жду данных, данные закончились либо по протоколу понимаем что все получил, либо флаг окончания передачи приходит
Но это похоже на то, когда посылки идут разово...
У меня то поток, он не прерывается.
Значит:
1. Ловим первый байт
2. проверяем - начало нашего ключа или нет
3. если да - то ловим следующеи 4 байта
4. проверяем наш ли это ключ или нет
5. если да - принимаем 18 байт данных, где известно, что 1-й из 18 это первый канали, 2-й - второй и т.д.
6. при обработке данных сразу выпуливаем на управление ШИМОМ
7. сбрасываем все кроме состояние ШИМА на ногах и ждем снова стартового ключа
... но вот реализовать это не получается.
Не могу понять что в обработке прерывания оставить, а что в основной цикл запулить...
и где какие проверки делать...
п.с. Мож кто за денежку (разумную) готов помочь в реализации кода ?

