UART
UART
Неплохо бы добавить индекс переменной в блоке ОТПРАВКА ПЕРЕМЕННОЙ В UART, по аналогии с блоком ПРИЕМ ПЕРЕМЕННОЙ ИЗ UART
UART
Это все понятно,а вот если мне нужно добавить определенный индекс, чтоб не переделывать весь проект.
UART
Да, понятно. Имхо, это уже косметика, тем более что это можно с лёгкостью сделать на стороне приёма. Конечно универсальность блоков это очень хорошо. Я только ЗА!
- Pratak
- Сержант
- Сообщения: 206
- Зарегистрирован: 08 фев 2016, 20:21
- Имя: Дмитрий
- Благодарил (а): 1 раз
UART
Ну это видимо для посвященных. Я всю голову поломал как сделать так что бы при отправке скажем команды 25 в сериал монитор на компе, загорался светодиод на пине 13. Програмно получается, а вот реализовать в блок-схеме FLProg не могу(. Юзал поиск по форуму с тегом UART. Никакого результата мои эксперименты (потуги) не дали. Ноль.dekorator писал(а):тем более что это можно с лёгкостью сделать на стороне приёма.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
UART
Не совсем понял суть вопроса, что именно не получается?Pratak писал(а):Я всю голову поломал как сделать так что бы при отправке скажем команды 25 в сериал монитор на компе, загорался светодиод на пине 13. Програмно получается, а вот реализовать в блок-схеме FLProg не могу
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
- Pratak
- Сержант
- Сообщения: 206
- Зарегистрирован: 08 фев 2016, 20:21
- Имя: Дмитрий
- Благодарил (а): 1 раз
UART
Никакого секрета нет. Просто константа из головы))dekorator писал(а):Скажите мне по секрету, обещаю молчать . Что за команда - 25?
Спасибо добрый человек за предоставленный пример.rw6cm писал(а):Не совсем понял суть вопроса, что именно не получается?
Из него я понял что не получается у меня понять механизм работы блоков между RessFromUart и Switch. Однако направление курения мануалов выявлено, жаль правда что на просторах инета мало руководств по использованию FLProg для таких нубасов как я

Последний раз редактировалось Pratak 11 фев 2016, 12:06, всего редактировалось 1 раз.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
UART
Попробую разложить этот момент.Pratak писал(а):Из него я понял что не получается у меня понять механизм работы блоков между RessFromUart и Switch.
Когда приходится парсить инфу идущую через UART, нужно помнить, что информация принимается по символьно.
Из этого понятно, что проще всего, выдернуть нужное число из потока однозначных цифр.
Для этого достаточно всего два элемента UART и допустим CompareString.
Если же число не однозначное, то уже нужно в UART включать накопление буфера, а следовательно и придумывать механизм его управления.
Если известно, что числа будут только допустим двухзначные, то сложности особой нет.
Достаточно поставить счетчик который будет после каждого второго знака сбрасывать себя и заодно буфер.
Само сложно когда информация разная, и по количеству знаков в числе/слове, и по скорости/интервалу передачи.
В вашем посте было не понятно, что это за цифра 25, - цифра из потока разносортицы, или единственная в своем роде команда.
Чтобы не играть в "что-где-когда" выложил сразу первый вариант.
И так нам нужно двухзначное число 25 из разносортицы. С помощью счетчика делаем буфер на 2 знака.
Но этого мало, так как последовательное чередование цифр 2 и 5 может использоваться во многих числах,
если к примеру придет число 2525, оно прочитается как 2 раза по 25. Следовательно все числа больше 2х знаков надо отсечь. Используем Switch.
Но есть и однозначные цифры! Так если придет два числа, допустим 2 за ним 525.
Произойдет следующие, придет 2ка, но счетчик останется открытым, дождется следующего числа, отрежет от него 5ку, и опять "ложная сработка" )))
Здесь применена не большая хитрость. Счетчик не сбрасывает не себя не буфер, а сбрасывает их таймер, на который возложено две задачи,
не давать сброс счетчика пока не пройдет длинное число, и сбрасывать если пришло короткое.
Конечно это не прокатит, если плотность и скорость потока будет большая, просто не реально будет настроить таймер так, чтобы он успевал пропустить длинное число, и в тоже время не обрезать идущее за ни короткое, тогда уже надо будет делать вынос мозга под другую логику

п/с Модераторы, переместите последние посты в соответствующую тему.
Не доглядел, что здесь "хотелки".
Последний раз редактировалось rw6cm 11 фев 2016, 18:18, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
- Pratak
- Сержант
- Сообщения: 206
- Зарегистрирован: 08 фев 2016, 20:21
- Имя: Дмитрий
- Благодарил (а): 1 раз
UART
Спасибо большое за труд и терпение! Вот это да! По полочкам все тонкости и нюансы, понятным для мало посвященных языком! БРАВО!!!
Мануалы писать не пробовали? Думаю если излагать учебный материал в подобном стиле - успех гарантирован.
Еще раз спасибо за исчерпывающее описание процесса.
Мануалы писать не пробовали? Думаю если излагать учебный материал в подобном стиле - успех гарантирован.
Еще раз спасибо за исчерпывающее описание процесса.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей