реклама на сайте
подробности

 
 
> USART и NMEA
MarYuriy
сообщение Dec 28 2011, 13:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 20-11-10
Пользователь №: 61 036



Здравствуйте!

Надо ли преобразовывать как-то ASCII коды, которые получаю по USART, (типичная последовательность NMEA $GPZDA,102433.00,28,12,2011,,*6A, из которой мне нужны только 2-5 поля)?
(я так понимаю, что не надо)

Не подскажите более удачный алгоритм считывания символов с USARTa, кроме как перечисление if'ов?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Cosmojam
сообщение Jan 13 2012, 13:03
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



Это что-то вроде дерева получается, должно быть очень эффективно, спасибо за идею
А ещё можно так: в прерывании в буфер записывается символ и ++указатель. В цикле проверяется изменился ли указатель с прошлого раза. Если да - был приём, берём разницу (сколько байт принято) и делаем memcmp с нужными подстроками от буфер[указатель - длина искомой строки - i ], где i счётчик в цикле от 1 до кол-ва принятых байт.
Цитата
Использовал ATMega128 на 11,0592МГц, приём в прерывании 10 кГц и разбор строки в прерывании 1 кГц, скорость порта приёмника 9600. Занимало производительности чуть более чем ничего.

Ну значит я где-то накосячил. Ладно, пускай будет strstr sm.gif


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MarYuriy   USART и NMEA   Dec 28 2011, 13:54
- - andrewlekar   Я 3 раза перечитал, но так и не понял сути вопроса...   Dec 29 2011, 05:02
|- - MarYuriy   Цитата(andrewlekar @ Dec 29 2011, 08:02) ...   Dec 29 2011, 11:39
|- - _Артём_   Цитата(MarYuriy @ Dec 29 2011, 13:39) Пот...   Dec 29 2011, 12:14
|- - MarYuriy   Цитата(_Артём_ @ Dec 29 2011, 15:14) Непо...   Dec 29 2011, 13:00
|- - _Артём_   Цитата(MarYuriy @ Dec 29 2011, 15:00) Я о...   Dec 29 2011, 16:15
- - SSerge   Повышаем градус абстракции! От GPS-модуля ведь...   Dec 29 2011, 06:20
- - MKdemiurg   Ты ЩО дурный (С) Без обид У тебя сообщение нач...   Dec 29 2011, 11:56
- - Kuzmi4   2 MarYuriy Там кстати не всё железо даёт sentence ...   Dec 29 2011, 12:08
- - andrewlekar   Цитатаwhile (!CharNum==32) Во-первых, такой ко...   Dec 30 2011, 04:46
|- - MarYuriy   _Артём_, я использую Trimble Resolusion-T. Если да...   Dec 30 2011, 12:03
- - lexanet   Посмотрите LPC1768. Установка времени. (WEB&GP...   Jan 6 2012, 17:11
- - MarYuriy   Как организовать буфер я нашёл. А вот как работать...   Jan 10 2012, 17:43
|- - Cosmojam   Цитата(MarYuriy @ Jan 10 2012, 20:43) Как...   Jan 10 2012, 18:22
|- - WHALE   Цитата(Cosmojam @ Jan 10 2012, 22:22) Чуд...   Jan 11 2012, 04:24
|- - Cosmojam   Цитата(WHALE @ Jan 11 2012, 07:24) Та лад...   Jan 11 2012, 09:05
|- - _Артём_   Цитата(Cosmojam @ Jan 11 2012, 11:05) Там...   Jan 12 2012, 11:44
- - lexanet   Не такая и тяжелая эта операция. У меня счас буфер...   Jan 11 2012, 05:15
|- - _Артём_   Цитата(Cosmojam @ Jan 13 2012, 15:03) А е...   Jan 13 2012, 14:36
- - kan35   В свое время столкнулся с задачей разбора RMC и GG...   Jan 14 2012, 07:17
- - Alexey K   Решил задать два вопроса здесь чтобы не плодить те...   Jun 13 2012, 06:30
|- - V_G   Цитата(Alexey K @ Jun 13 2012, 16:30) Доп...   Jun 13 2012, 07:01
- - Alexey K   Данные я формирую так что по первому пункту первом...   Jun 13 2012, 07:12


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 22:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016