FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Пятница, 09.12.2016, 16:31
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Странный глюк
Странный глюк
Naladchik
Дата: Понедельник, 15.02.2016, 13:59 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 116
Награды: 0
Репутация: 0
Статус: Offline
Создал заготовку. Суть в следующем. Принять данные с UART, записать в темповую переменную и далее работать с ней. При этом исключить возможность перезаписи в ней данных до конца обработки (исключить возможность влияния мусора из UART). Так вот проблема, при записи данных темповую переменную записываются только 2 первых символа (по крайней мере на дисплее вижу именно так). Кто пояснит, в чем глюк?
Прикрепления: _UART.flp(148Kb)


Предпочитаю Portable версию.
 
Airis Дата: Понедельник, 15.02.2016, 21:01 | Сообщение # 2
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline

Переменная Data_IN_act после первого срабатывание дальше уже не будет обновляться (менят свое состояние). Единожды записанная единица, там будет все время, и без разницы что у нее есть разрешение на запись, по тому что записывать она может только единица, но не ноль.
Прикрепления: 0547498.png(3Kb)


Сообщение отредактировал Airis - Понедельник, 15.02.2016, 21:01
 
Naladchik Дата: Вторник, 16.02.2016, 05:55 | Сообщение # 3
Лейтенант
Группа: Проверенные
Сообщений: 116
Награды: 0
Репутация: 0
Статус: Offline
Airis, ниже, на второй плате, происходит периодическое (пока) обнуление данной переменной. Проблему записи только двух первых знаков это не решает.

Предпочитаю Portable версию.
 
Airis Дата: Вторник, 16.02.2016, 08:45 | Сообщение # 4
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline
Не заметил то что на второй плате, но и тут проблема. Одновибратор небудет считать 3 секунды, он проработает очень короткий момент
(микросекунду, миллисекунду) и тоже самое произойдет с переменной Data_IN_act - оно поменяет свое состояние с
высокое на низкое почти мгновенно. А это означаете что Data_IN_act будет выводит данные на дисплей на это очень короткое мгновение, и
сразу после это его гасить. Так что это еще хорошо что на дисплее можно успеть увидеть
2 символа.
 
Naladchik Дата: Вторник, 16.02.2016, 10:26 | Сообщение # 5
Лейтенант
Группа: Проверенные
Сообщений: 116
Награды: 0
Репутация: 0
Статус: Offline
Airis, опять мимо. 
Цитата Airis ()
не будет считать 3 секунды
будет, и считает. это можно "в живую" увидеть по светодиоду, подключенному к выходу D13. Состояние D13 напрямую зависит от состояния Data_IN_act. И символы висят эти самые 3с.

Airis, я очень ценю Ваше желание помочь разобраться, но вот если бы Вы проверили этот проект "в железе" и сравнили мой и Ваш результаты было бы более информативно.
С Уважением.


Предпочитаю Portable версию.


Сообщение отредактировал Naladchik - Вторник, 16.02.2016, 10:36
 
rw6cm Дата: Вторник, 16.02.2016, 11:23 | Сообщение # 6
Генерал-майор
Группа: Проверенные
Сообщений: 480
Награды: 44
Репутация: 32
Статус: Offline
Цитата Naladchik ()
в чем глюк?
Прикрепления: _UART1.flp(150Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
Naladchik Дата: Вторник, 16.02.2016, 12:34 | Сообщение # 7
Лейтенант
Группа: Проверенные
Сообщений: 116
Награды: 0
Репутация: 0
Статус: Offline
rw6cm, Спасибо.
Ваш вариант делал почти то, что мне нужно, главное, направление "куда копать" было понятно.
Подправил под свою задачу, заработало.

P.S. плюс в карму.
Прикрепления: _UART2.flp(142Kb)


Предпочитаю Portable версию.


Сообщение отредактировал Naladchik - Вторник, 16.02.2016, 12:37
 
rw6cm Дата: Вторник, 16.02.2016, 13:59 | Сообщение # 8
Генерал-майор
Группа: Проверенные
Сообщений: 480
Награды: 44
Репутация: 32
Статус: Offline
Цитата Naladchik ()
rw6cm, Спасибо
Всегда рад помочь.
Но честно сказать, вопрос в теме поставлен некудышне…
«Принять данные с UART, записать в темповую переменную и далее работать с ней (исключить возможность влияния мусора из UART)»
Что за данные? С какой интенсивностью приходят? О каком мусоре речь? Где критерий что это мусор ?
«При этом исключить возможность перезаписи в ней данных до конца обработки»
До какого конца? Пяти секунд по таймеру, или до турецкой пасхи?
Отсюда и ответ был «пальцем в небо» )))
И даже ваше заключение, «Подправил под свою задачу, заработало.»  ни какой ясности не дало.
Таймер сброса в вашем варианте сбрасывает только св.диод, не трогая переменную темп.
Даже если это подправить он будет перезаписывать данные с принятых, и не определять, успели они там обновится или нет.
В общем разбирайтесь …. !)))))


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Вторник, 16.02.2016, 14:00
 
Naladchik Дата: Вторник, 16.02.2016, 14:54 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 116
Награды: 0
Репутация: 0
Статус: Offline
rw6cm, Ответил в личку.

Предпочитаю Portable версию.
 
monitorrr Дата: Вторник, 16.02.2016, 19:00 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Просьба если вопрос решен, написать в тему!
То же такая проблема!


Сообщение отредактировал monitorrr - Вторник, 16.02.2016, 19:24
 
Naladchik Дата: Вторник, 16.02.2016, 19:38 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 116
Награды: 0
Репутация: 0
Статус: Offline
Был найден косяк и в исходном проекте. переменная Data_IN_Act устанавливалась в высокое состояние в начале приема данных, а должна  по окончанию. Соответственно и запись данных из приемной переменной в буферную происходила в начале приема а не по окончанию, вот поэтому только начало посылки и записывалось.
Для тех кто вдруг захочет проверить у себя, имейте ввиду что при запуске Монитора com порта и нажатии кнопки "соединение" Монитор отправляет в порт какие то данные, соответственно моя программа этот момент отлавливает и блокируется на время работы одновибратора.
Далее все работает как и задумывалось. Готовность к приему контролируется по гашению светодиода на D13
Прикрепления: 3769100.png(5Kb) · 6388031.flp(147Kb)


Предпочитаю Portable версию.


Сообщение отредактировал Naladchik - Вторник, 16.02.2016, 19:48
 
Форум » Основной » Спросить у знатоков » Странный глюк
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика