Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Закрытая тема
Опции темы
Непрочитано 02.04.2017, 19:33   #31
H4LF
Вид на жительство
 
Аватар для H4LF
 
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
H4LF на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

dgrishin, ага, работающим, но не всегда. Вот значит как... значит я когда-то написал на C сферического коня в вакууме, а не простенькую, но работающую GSM сигнализацию...
Я в общем-то тоже не вижу больше смысла писать тут, свой путь я указал, пас отдал... Надеюсь топикстартер так или иначе выкарабкается. Пусть даже и с отстреленными конечностями
Реклама:
H4LF вне форума  
Непрочитано 02.04.2017, 19:33   #32
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,091
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от H4LF Посмотреть сообщение
после того как конечный автомат(КА) определил
Просто счетчик заполнения буфера. Пришел байт - инкремент, вынут байт - декремент.
По нему же и переполнение кольца определяется.
Сообщение от H4LF Посмотреть сообщение
он так работает
В модеме крутится RTOS и у нее не стоит высшим приоритетом непрерывность передачи сообщений, у модема первоочередные задачки посерьезней. Это для ТС-а.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 02.04.2017, 20:05   #33
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от NewWriter Посмотреть сообщение
У вас там что, используется целая куча высокоприоритетных прерываний, задержка обработки которых грозит ядерной катастрофой, чтоль?
Это наследие тяжких времен, тактовая частота один мегагерц, аппаратный стек несколько байт, прерывания неприоритетные, а то и ваще одно на всё, ну вы понели. С тех пор и затаился первобытный страх в генах - "не ставь в прерывание ничего, кроме флажка, обрабатывай его в мейне!" Вот и ставят флажки до сих пор, и на 40 мегагерцах, и на 100)))
Хотя и в те стародавние времена, если головой работать, то почему-то получались у людей неплохие программы, исполняющиеся полностью в прерываниях.
AR_Favorit вне форума  
Непрочитано 02.04.2017, 20:12   #34
H4LF
Вид на жительство
 
Аватар для H4LF
 
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
H4LF на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от akegor Посмотреть сообщение
Просто счетчик заполнения буфера. Пришел байт - инкремент, вынут байт - декремент.
По нему же и переполнение кольца определяется.
А, кажется понял про какой это счётчик. У меня он считал только байты самой строки, без CR LF. По окончанию строки (и после её обработки) он обнулялся. Да, по нему можно определять наезд "головы" на "хвост" (в терминах уробороса ) если придёт сплошная строка больше размера буфера. Но зачем декремент? У обоих индексов кольцевого буфера тоже всегда инкремент... Или всё же я чего-то не понял...
H4LF вне форума  
Непрочитано 02.04.2017, 20:15   #35
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от H4LF Посмотреть сообщение
Но зачем декремент?
Потому что сказано - счетчик заполнения буфера. Пока он не ноль - в буфере есть что-то, что мы еще не пошшупали. А индексы - эт индексы, на них ориентируемся, в какую позицию писать, а в какой - шшупать
Но так делать необязательно
AR_Favorit вне форума  
Непрочитано 02.04.2017, 21:07   #36
H4LF
Вид на жительство
 
Аватар для H4LF
 
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
H4LF на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

AR_Favorit, Вообще то я предложил (и делал) кольцевой буфер. Там не нужен декремент и не представляю для чего может быть нужен (если не считать обработку в этом буфере поступивших строк). Заполнение я определяю по разнице индекса головы и индекса хвоста:
Цитата:
Проверка на наличие данных в буфере происходит очень просто - если idxIN не равен idxOUT, то в буфере есть данные, в противном случае данных в буфере нет.
Зачем ещё какой-то счётчик? Ну кроме того что в КА считает длину поступающей строки.
Можно конечно взять для приёма (и передачи) не кольцевой буфер, но я сторонник принципа KISS.
На STM32 с его DMA и другими плюшками может быть проще и надёжнее будет сделать как-то по другому, я не знаю.
Про наследие - спасибо, посмешили но если это про меня - то я не настолько суров. И вообще у меня мало опыта. PIC мне как-то не очень люб, если не ошибаюсь это у него был аппаратный стек. Ну и у какого-то младшего AVR без RAM. Полностью на прерываниях... сейчас всё больше полностью на delay_ms... Ну и я в общем-то даже не против, главное чтобы какой нибудь Therac-25 не сделали. Ну а затупить можно любое количество мегагерцев, даже число Пи до эпического знака после запятой не нужно для этого вычислять
А по теме - тут в основном не о задержках обработки прерываний, фиг с ними, а о правильном (надёжном) приёме данных по UART от модема.
H4LF вне форума  
Непрочитано 02.04.2017, 21:13   #37
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,091
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от H4LF Посмотреть сообщение
Зачем ещё какой-то счётчик?
Да все просто. Проверил его - есть достаточное количество для анализа и выбирай по одному байту, не морокаясь с индексами, пока не ноль.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 02.04.2017, 21:26   #38
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от H4LF Посмотреть сообщение
Проверка на наличие данных в буфере происходит очень просто - если idxIN не равен idxOUT, то в буфере есть данные, в противном случае данных в буфере нет.
Иногда удобнее работать с отдельной переменной.

Сообщение от H4LF Посмотреть сообщение
о если это про меня
Неееее, это про боязнь ставить любые обработки в прерывания и летящие тапки в кодера, такие обработки практикующего. Сам - практикую вполне успешно.

Сообщение от H4LF Посмотреть сообщение
на delay_ms
ИМХО вообще не нужная штука ни для чего, кроме первоначального ознакомления с контроллером. Нужна задержка - ну и отсчитываем ее в соответствующем состоянии КА. Зачем все стопорить-то?

Сообщение от H4LF Посмотреть сообщение
о правильном (надёжном) приёме данных по UART от модема
а вот тут печаль-беда. Без аппаратного управления потоком либо наличия ну очень больших ресурсов это недостижимо. Модем теоретически может наплевать unsolicited-ов так много и невовремя, что сломает любую нашу обработку, вмещающуюся в среднестатистический МК, особенно, если этот самый МК помимо общения с модемом делает что-то еще важное. Поэтому просто принимаем как данность, что мы всегда могли что-то пропустить и повторяем запросы, на которые нет ответа, СМСки периодически проверяем сами, а не надеемся только на отловленное CMTI и т.д.
AR_Favorit вне форума  
Непрочитано 02.04.2017, 22:19   #39
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от AR_Favorit Посмотреть сообщение
это про боязнь ставить любые обработки в прерывания и летящие тапки в кодера, такие обработки практикующего.
Это ПЫХ-АВРовская детская болячка, называется "зашли быстро, еще быстрее вышли, лучше если вышли ещё до того как зашли". Связана с убогостью данных МК.
STM32F0 вне форума  
Непрочитано 02.04.2017, 22:35   #40
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,091
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Глюк приёма данных по USART

Сообщение от STM32F0 Посмотреть сообщение
Связана с убогостью данных МК.
Не только. Убогость мыслительного аппарата тоже этому способствует. Если приветствуется не разумная необходимость и достаточность, а слепое бездумное подражание авторитетам.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Закрытая тема

Закладки


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27
Получение данных по USART Fangir AVR 32 02.12.2014 15:15
Получение данных по USART в CVAVR himik131 Микроконтроллеры, АЦП, память и т.д 6 12.03.2011 00:12
Вопрос по мультипроцессорному обмену USART MEGA8 vikont-s Микроконтроллеры, АЦП, память и т.д 0 10.08.2006 14:55


Часовой пояс GMT +4, время: 17:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot