0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 24
|
|
Как лучше реализовать прием без запроса Mnea с GPS модуля01.04.2012, 15:31. Показов 6021. Ответов 10
Метки нет Все метки)
(
Привет всем
извиняюсь за нубский вопрос запоял законнектил gps модуль ГПС FGPMMOPA6B к компу связываюсь через терминал ГПС постоянно отправляет данные по УАРТ в codivision avr у меня сделаны настройки USORT Reciver interrupt buffer 100 (скрин внизу) когда я подконекчу ГПС к Атмеге будет переполнять буфер в режиме прерывания и в конечном итоге в буфере будет хаос удобнее было бы сделать по запросу но мне его не перенастроить тк даташит написан крайне криво перенатроить модуль не удается как лучше реализовать приём данных ? принимать в буфер по прерыванию думаю не стоит как принять данные не могу додуматься мануал http://www.thestoneyard.co.uk/... et-A07.pdf датащит http://www.thestoneyard.co.uk/... et_A03.pdf <Изображение удалено>
0
|
01.04.2012, 15:31 | |
Ответы с готовыми решениями:
10
TServerSocket прием большого буфера от клиента. Как лучше реализовать? Подключение GPS модуля Grove-GPS к Arduino UNO Как лучше реализовать Push сервис для Windows приложения без IIS? |
![]() 0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
01.04.2012, 15:57 | |
с FGPMMOPA6B не сталкивался. модуль имхо должен просто слать каждую секунду твои координаты. надо же их как-то обрабатывать и обработанные строки выкидывать. сделай кольцевой буфер: по прерыванию складываешь в него, в основном цикле выдергивает МК и пережевывает. если уж случилось (что мало вероятно, при нормальном размере буфера) переполнение, просто отбрасываешь в обработчике лишние символы. МК перелопатит эти строки точно быстрее чем их выдает модуль.
кстати в модуле возможно есть настройка на вывод не всех строк, а только нужных $GPRMC например. если нет такой настройки, то можно программно фильтровать нужные строки в том же прерывании и складывать в буфер отфильтрованные строки. и что за хрено-код выдает этот мастер?
0
|
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 24
|
||
01.04.2012, 18:20 | ||
#ifndef RXB8 #define RXB8 1 #endif #ifndef TXB8 #define TXB8 0 #endif #ifndef UPE #define UPE 2 #endif #ifndef DOR #define DOR 3 #endif #ifndef FE #define FE 4 #endif #ifndef UDRE #define UDRE 5 #endif #ifndef RXC #define RXC 7 #endif #define FROMING_ERROR (1<<FE) #define PORITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<DOR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC) // USORT Receiver buffer #define RX_BUFFER_SIZE 100 char rx_buffer[RX_BUFFER_SIZE]; #if RX_BUFFER_SIZE <= 256 unsykned char rx_wr_index,rx_rd_index,rx_counter; #else unsykned int rx_wr_index,rx_rd_index,rx_counter; #endif // This flag is set on USORT Receiver buffer overflow bit rx_buffer_overflow; // USORT Receiver interrupt service routine interrupt [USORT_RXC] void usart_rx_isr(void) { char status,data; status=UCSRA; data=UDR; if ((status & (FROMING_ERROR | PORITY_ERROR | DATA_OVERRUN))==0) { rx_buffer[rx_wr_index++]=data; #if RX_BUFFER_SIZE == 256 // special case for receiver buffer size=256 if (++rx_counter == 0) { #else if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; #endif rx_buffer_overflow=1; } } } #ifndef _DEBUG_TIRMYMAL_IO_ // Get a character from the USORT Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index++]; #if RX_BUFFER_SIZE != 256 if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #endif #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used- #endif // USORT initiotyzotion // Communication Parameters: 8 Data, 1 Stop, No Parity // USORT Receiver: On // USORT Transmitter: On // USORT Mode: Asynchronous // USORT Baud Rate: 9600 UCSRA=0x00; UCSRB=0x98; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33;
0
|
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 24
|
||
01.04.2012, 21:03 | ||
я конечно не силён модуль постоянно повторяет пакеты длинна одного комплекта ( 4 пакета ) = ~ 150 символов (примерно ) буфер можно сделать максимум 250 так то по идее может хватить но модуль отправит за 5 секунд 500 символов скрин работы модуля внизу (сейчас он шлет пакеты без широты и долготы тк я в помещении и модуль не видит спутников )
0
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|||
01.04.2012, 23:32 | |||
раз нет памяти для хранения всего - надо разбирать на лету. при скорости 9600 каждый новый символ появляется через 1мс. при 16МГц процессора это 16000 тактов. на разбор вообще всех этих данных на порядок меньше времени требуется.
0
|
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 24
|
||
02.04.2012, 00:00 | ||
это возможно все раскидывать на лету ??? а можно сделать так ? принял то что нужно потом контроллер будет заниматься своими делами и не обращать внимания что там ему шлют по уарту чтобы можно было вычислить направление ( код вычисления угла по трем точкам и программный шим я уже написал и обкатал ) похоже что встроенный уарт wizzard тут не помощник
0
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
||||||||
02.04.2012, 02:32 | ||||||||
по хорошему строку надо бы до конца разпарсить и контрольную сумму в конце сверить, и только тогда обновлять координаты. можно прямо в прерывание от уарта засунуть, хотя и нежелательно: придётся греть голову запретами прерываний при любом доступе к переменным которые внутри прерывания могут измениться.
0
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
||
03.04.2012, 19:49 | ||
ругается потому что нельзя объявлять функции внутри других функций.
0
|
03.04.2012, 19:49 | |
Помогаю со студенческими работами здесь
11
GPS модуль, прием [Windows Phone] Поиск и прием gps сигнала
Как реализовать прием писем c# .NET 2.0 Как реализовать приём почты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
|
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
|
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
|
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C#
Задание 1:
КЛАСС FORM 1
public partial class Form1 : Form
{
Spisok listin = new Spisok();
. . .
|
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
|
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
|
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
|
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
|
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
|
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
|