Easyelectronics.ru

Электроника для всех
Текущее время: 19 фев 2020, 13:19

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: UART DMA прием (количество неизвестно)
СообщениеДобавлено: 03 июл 2019, 17:24 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 649
Откуда: Санкт-Петербург
sed_alex писал(а):
Была реализация сначала с двойным буфером и прерыванием, но сейчас на столе лежит модуль морской, который фигачит на скорости 115200, 10 раз в секунду, и при таком раскладе при максимальной длинне посылки 712 байт получается в секунду прилетает 7 кб данных, из которых нужно выцеплять каждый раз 2 строчки $GPRMC и $GNRMC
Так вот если это все делать в прерывании, то контроллер слишком много времени занимается всякой ерундой.
Вообще разбор данных это очень скользкая тема и нужно смотреть исходя из ситуации.


в целом я согласен. но на счет 712 байт как то не согласен. возможно имелось в виду 712 за секунду(по одной строке RMC). В RMC явно меньше.... недавно просто тоже парсил и тоже 10 раз в секунду.
я делал так прилетает "$" значит пришел первый байт посылки. дальше тупо заполняю буфер до байта 0x0A и вскидываем флаг конца посылки. в основном цикле парсим и скидываем флаги.
Если основной функционал прибора именно парсить gps, то наверно нет ничего плохого в том чтобы МК грузился именно этим функционалом.

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

p.s.
кстати в тему скорости... не думал сколько времени тратиться на sscanf? тоже очень спорное решение.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Eddy_Em, kos


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB