Странный глюк

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
Naladchik
Лейтенант
Сообщения: 374
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 30
Откуда: Новосибирск
Имя: Павел

Странный глюк

#1

Сообщение Naladchik » 15.02.2016{, 13:59}

Создал заготовку. Суть в следующем. Принять данные с UART, записать в темповую переменную и далее работать с ней. При этом исключить возможность перезаписи в ней данных до конца обработки (исключить возможность влияния мусора из UART). Так вот проблема, при записи данных темповую переменную записываются только 2 первых символа (по крайней мере на дисплее вижу именно так). Кто пояснит, в чем глюк?
Вложения
_UART.flp
(148.08 КБ) 30 скачиваний
Win7-64. FLProg Portable.
Изображение

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Странный глюк

#2

Сообщение Airis » 15.02.2016{, 21:01}

0547498.png
Переменная Data_IN_act после первого срабатывание дальше уже не будет обновляться (менят свое состояние). Единожды записанная единица, там будет все время, и без разницы что у нее есть разрешение на запись, по тому что записывать она может только единица, но не ноль.
Последний раз редактировалось Airis 15.02.2016{, 21:01}, всего редактировалось 1 раз.

Naladchik
Лейтенант
Сообщения: 374
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 30
Откуда: Новосибирск
Имя: Павел

Странный глюк

#3

Сообщение Naladchik » 16.02.2016{, 05:55}

Airis, ниже, на второй плате, происходит периодическое (пока) обнуление данной переменной. Проблему записи только двух первых знаков это не решает.
Win7-64. FLProg Portable.
Изображение

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Странный глюк

#4

Сообщение Airis » 16.02.2016{, 08:45}

Не заметил то что на второй плате, но и тут проблема. Одновибратор небудет считать 3 секунды, он проработает очень короткий момент
(микросекунду, миллисекунду) и тоже самое произойдет с переменной Data_IN_act - оно поменяет свое состояние с
высокое на низкое почти мгновенно. А это означаете что Data_IN_act будет выводит данные на дисплей на это очень короткое мгновение, и
сразу после это его гасить. Так что это еще хорошо что на дисплее можно успеть увидеть
2 символа.

Naladchik
Лейтенант
Сообщения: 374
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 30
Откуда: Новосибирск
Имя: Павел

Странный глюк

#5

Сообщение Naladchik » 16.02.2016{, 10:26}

Airis, опять мимо. 
Airis писал(а):не будет считать 3 секунды
будет, и считает. это можно "в живую" увидеть по светодиоду, подключенному к выходу D13. Состояние D13 напрямую зависит от состояния Data_IN_act. И символы висят эти самые 3с.

Airis, я очень ценю Ваше желание помочь разобраться, но вот если бы Вы проверили этот проект "в железе" и сравнили мой и Ваш результаты было бы более информативно.
С Уважением.
Последний раз редактировалось Naladchik 16.02.2016{, 10:36}, всего редактировалось 1 раз.
Win7-64. FLProg Portable.
Изображение

Аватара пользователя
rw6cm
Полковник
Сообщения: 1985
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 220
Имя: Владимир

Странный глюк

#6

Сообщение rw6cm » 16.02.2016{, 11:23}

Naladchik писал(а):в чем глюк?
Вложения
_UART1.flp
(150.02 КБ) 34 скачивания
Win10-64, FLProg (portable)

Naladchik
Лейтенант
Сообщения: 374
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 30
Откуда: Новосибирск
Имя: Павел

Странный глюк

#7

Сообщение Naladchik » 16.02.2016{, 12:34}

rw6cm, Спасибо.
Ваш вариант делал почти то, что мне нужно, главное, направление "куда копать" было понятно.
Подправил под свою задачу, заработало.

P.S. плюс в карму.
Вложения
_UART2.flp
(141.67 КБ) 36 скачиваний
Последний раз редактировалось Naladchik 16.02.2016{, 12:37}, всего редактировалось 1 раз.
Win7-64. FLProg Portable.
Изображение

Аватара пользователя
rw6cm
Полковник
Сообщения: 1985
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 220
Имя: Владимир

Странный глюк

#8

Сообщение rw6cm » 16.02.2016{, 13:59}

Naladchik писал(а):rw6cm, Спасибо
Всегда рад помочь.
Но честно сказать, вопрос в теме поставлен некудышне…
«Принять данные с UART, записать в темповую переменную и далее работать с ней (исключить возможность влияния мусора из UART)»
Что за данные? С какой интенсивностью приходят? О каком мусоре речь? Где критерий что это мусор ?
«При этом исключить возможность перезаписи в ней данных до конца обработки»
До какого конца? Пяти секунд по таймеру, или до турецкой пасхи?
Отсюда и ответ был «пальцем в небо» )))
И даже ваше заключение, «Подправил под свою задачу, заработало.»  ни какой ясности не дало.
Таймер сброса в вашем варианте сбрасывает только св.диод, не трогая переменную темп.
Даже если это подправить он будет перезаписывать данные с принятых, и не определять, успели они там обновится или нет.
В общем разбирайтесь …. !)))))
Последний раз редактировалось rw6cm 16.02.2016{, 14:00}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Naladchik
Лейтенант
Сообщения: 374
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 30
Откуда: Новосибирск
Имя: Павел

Странный глюк

#9

Сообщение Naladchik » 16.02.2016{, 14:54}

rw6cm, Ответил в личку.
Win7-64. FLProg Portable.
Изображение

monitorrr
Рядовой
Сообщения: 5
Зарегистрирован: 27.12.2015{, 08:19}
Репутация: 0

Странный глюк

#10

Сообщение monitorrr » 16.02.2016{, 19:00}

Просьба если вопрос решен, написать в тему!
То же такая проблема!
Последний раз редактировалось monitorrr 16.02.2016{, 19:24}, всего редактировалось 1 раз.

Naladchik
Лейтенант
Сообщения: 374
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 30
Откуда: Новосибирск
Имя: Павел

Странный глюк

#11

Сообщение Naladchik » 16.02.2016{, 19:38}

Был найден косяк и в исходном проекте. переменная Data_IN_Act устанавливалась в высокое состояние в начале приема данных, а должна  по окончанию. Соответственно и запись данных из приемной переменной в буферную происходила в начале приема а не по окончанию, вот поэтому только начало посылки и записывалось.
Для тех кто вдруг захочет проверить у себя, имейте ввиду что при запуске Монитора com порта и нажатии кнопки "соединение" Монитор отправляет в порт какие то данные, соответственно моя программа этот момент отлавливает и блокируется на время работы одновибратора.
Далее все работает как и задумывалось. Готовность к приему контролируется по гашению светодиода на D13
Вложения
6388031.flp
(147.3 КБ) 32 скачивания
3769100.png
Последний раз редактировалось Naladchik 16.02.2016{, 19:48}, всего редактировалось 1 раз.
Win7-64. FLProg Portable.
Изображение

Ответить

Вернуться в «Спросить у знатоков»

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

Сейчас этот форум просматривают: omich66 и 1 гость