23 дня знакомился с STM32
Классная штука, но до сих пор не пришел к реализованному (рабочему) алгоритму программы.
Понимаю, что должно примерно быть так:
1. ПРишел байт по урату, сработало прерывание.
2. в обработчике обрабатываем байт, складируя в свой приемный буфер
3. дальше должна быть машина состояния, типа
жду начала посылки, получил - переходит в след. состояние.
жду данных, данные закончились либо по протоколу понимаем что все получил, либо флаг окончания передачи приходит
Но это похоже на то, когда посылки идут разово...
У меня то поток, он не прерывается.
Значит:
1. Ловим первый байт
2. проверяем - начало нашего ключа или нет
3. если да - то ловим следующеи 4 байта
4. проверяем наш ли это ключ или нет
5. если да - принимаем 18 байт данных, где известно, что 1-й из 18 это первый канали, 2-й - второй и т.д.
6. при обработке данных сразу выпуливаем на управление ШИМОМ
7. сбрасываем все кроме состояние ШИМА на ногах и ждем снова стартового ключа
... но вот реализовать это не получается.
Не могу понять что в обработке прерывания оставить, а что в основной цикл запулить...
и где какие проверки делать...
п.с. Мож кто за денежку (разумную) готов помочь в реализации кода ?
m0518ld2ae - страшный зверь, на кота не похож!
Re: m0518ld2ae - страшный зверь, на кота не похож!
Ученье свет! Неучам - чуть свет и на работу.. 
Re: m0518ld2ae - страшный зверь, на кота не похож!
Хм, на STM32 проще принять через DMA сразу 23 байта, а потом разбираться с посылкой. Принимать по байту, это как-то по абдуриновски. Жизнь изменилась, дружище, если чё, а ты, похоже не в курсе этого. 
Re: m0518ld2ae - страшный зверь, на кота не похож!
[uquote="tonyk",url="/forum/viewtopic.php?p=4150608#p4150608"]Хм, на STM32 проще принять через DMA сразу 23 байта, а потом разбираться с посылкой. Принимать по байту, это как-то по абдуриновски. Жизнь изменилась, дружище, если чё, а ты, похоже не в курсе этого.
[/uquote]
Да я про это читал... но еще не пробывал.
Да я про это читал... но еще не пробывал.
Ученье свет! Неучам - чуть свет и на работу.. 
Re: m0518ld2ae - страшный зверь, на кота не похож!
Реализовал на STM32F103. Пhограмный PWM, все через DMA. В основном цикле ни строчки кода. Частота 20 МгЦ. Работает отлично. Всем откликнувшимся котам и котикам - Спасибо!
Ученье свет! Неучам - чуть свет и на работу.. 