Easyelectronics.ru

Электроника для всех
Текущее время: 14 окт 2019, 09:22

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



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

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

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 607
Откуда: Санкт-Петербург
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 часов


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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