Страница 2 из 2

Re: m0518ld2ae - страшный зверь, на кота не похож!

Добавлено: Ср дек 29, 2021 14:11:51
ReZeC
23 дня знакомился с STM32
Классная штука, но до сих пор не пришел к реализованному (рабочему) алгоритму программы.

Понимаю, что должно примерно быть так:
1. ПРишел байт по урату, сработало прерывание.
2. в обработчике обрабатываем байт, складируя в свой приемный буфер
3. дальше должна быть машина состояния, типа
жду начала посылки, получил - переходит в след. состояние.
жду данных, данные закончились либо по протоколу понимаем что все получил, либо флаг окончания передачи приходит

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

... но вот реализовать это не получается.
Не могу понять что в обработке прерывания оставить, а что в основной цикл запулить...
и где какие проверки делать...

п.с. Мож кто за денежку (разумную) готов помочь в реализации кода ?

Re: m0518ld2ae - страшный зверь, на кота не похож!

Добавлено: Ср дек 29, 2021 20:06:50
tonyk
Хм, на STM32 проще принять через DMA сразу 23 байта, а потом разбираться с посылкой. Принимать по байту, это как-то по абдуриновски. Жизнь изменилась, дружище, если чё, а ты, похоже не в курсе этого. :)

Re: m0518ld2ae - страшный зверь, на кота не похож!

Добавлено: Чт дек 30, 2021 10:23:56
ReZeC
[uquote="tonyk",url="/forum/viewtopic.php?p=4150608#p4150608"]Хм, на STM32 проще принять через DMA сразу 23 байта, а потом разбираться с посылкой. Принимать по байту, это как-то по абдуриновски. Жизнь изменилась, дружище, если чё, а ты, похоже не в курсе этого. :)[/uquote]


Да я про это читал... но еще не пробывал.

Re: m0518ld2ae - страшный зверь, на кота не похож!

Добавлено: Пн янв 17, 2022 10:29:26
ReZeC
Реализовал на STM32F103. Пhограмный PWM, все через DMA. В основном цикле ни строчки кода. Частота 20 МгЦ. Работает отлично. Всем откликнувшимся котам и котикам - Спасибо!