FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Вторник, 22.08.2017, 17:51
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

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


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 3123»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Помощь новичку. Меню и энкодер. (Нужна помощь в поиске ошибки)
Помощь новичку. Меню и энкодер.
TipTopBY Дата: Суббота, 04.03.2017, 15:11 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Добрый день!
Опишу что хочу получить:
Система контроля работы тэна и вентиляторов в зависимости от датчиков температуры.
Вывод данных на LCD 1602.

Преключение информации на экране с помощью вращения энкодера.
При выборе экрана с входом в настройки (Settings menu) и нажатии на кнопку эенкодера, активация меню.
В пунктах меню настройка параметров с помощью вращения эенодера, переключения по пунктам меню по нажатию на кнопку энкодера. При выборе пункта меню Exit и нажатии кнопку энкодера - выход из меню.

Сталкнулся со следующими проблемами:
1. После загрузки система сразу оказываеться в Меню,что не нормально , вращение энкодера работает коретно, переход по меню также. Но в пункте меню Exit при нажатии кнопки из меню выход не происходит.

2. Если отключить меню, что бы вход не происходил(заведомо внести ошибку в программу), то отображаеться 1 информационный экран, но переход на другие при вращении энкодера не происходит.
Заметил что на это как то влияет Блок энкодера который участвует в работе Меню. Сменив на нем пины подключения(по сути указав другой энкодер), переключение информации на экране стало коректным, но тем самым настйка параметров в меню стала не возможной.
Я попытался более четко определить работу того или иного блока энеодера, отредактировав блок - добавив вход En, высокий сигнал на котром включал бы данный блок энкодера, файл блока приложу к посту, но нужного эфекта это не дало.

Прошу взглянуть на мою программу, указать на ошибки или предложить варианты решения проблем.
Прикрепления: Encoder-En-CODE.ubi(127Kb) · proga.flp(1102Kb)


Сообщение отредактировал TipTopBY - Суббота, 04.03.2017, 15:14
 
Boroda Дата: Суббота, 04.03.2017, 21:34 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
TipTopBY, никогда так не делайте, будет микросекундный ногодрыг (вкл/выкл).



Лучше убрать из плат выход МК и в конце программы сделать так. Под конец цикла переменная вся обсчитается, а потом уже ее на выход пускаем.

Прикрепления: 4666840.png(22Kb) · 0456659.png(1Kb)


Сообщение отредактировал Boroda - Суббота, 04.03.2017, 21:53
 
Boroda Дата: Суббота, 04.03.2017, 21:51 | Сообщение # 3
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
А еще лучше так. Блоки сравнения могут быть раскиданы по всей программе, а вывод наружу на последней плате. Очень просто строится алгоритм, отслеживать надо только порядок блоков сравнения по приоритету срабатывания.

Прикрепления: 9079962.png(12Kb)


Сообщение отредактировал Boroda - Суббота, 04.03.2017, 21:57
 
Boroda Дата: Суббота, 04.03.2017, 21:56 | Сообщение # 4
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline

У Вас получается, что вентилятор всегда будет работать только по последнему условию "включение вентилятора", а плата "отключение вентилятора" будет бесполезна.

Должно быть так.
Прикрепления: 2686380.png(19Kb)


Сообщение отредактировал Boroda - Суббота, 04.03.2017, 22:23
 
TipTopBY Дата: Суббота, 04.03.2017, 21:57 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Спс за совет, принял к сведению.
 
Boroda Дата: Суббота, 04.03.2017, 22:28 | Сообщение # 6
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
У Вас все кнопки на землю замыкаются? Если да, то на всех входах от кнопок надо поставить инверсию. Если инверсии нет, то программа при запуске понимает, что нажаты все кнопки и перещелкивает меню.

Прикрепления: 0034550.png(1Kb)
 
TipTopBY Дата: Суббота, 04.03.2017, 22:51 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Да Вы правы, я учел этот мемент в управлении подстветкой, а потом почему-то упустил, сейчас выставил инверсию на на всех блоках "Select". Но всеравно при загрузке система оказываеться в Меню. Так же выход из меню не отрабатывает.
 
Boroda Дата: Суббота, 04.03.2017, 23:07 | Сообщение # 8
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Немного причесал Вашу программу, проверьте.
Прикрепления: Menu_fan.flp(1215Kb)
 
Boroda Дата: Суббота, 04.03.2017, 23:20 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Маленько упростил энкодер. Ну и под него программу. И сделал сброс в первый пункт при входе в меню.
Прикрепления: EncUpDn-CODE-.ubi(141Kb) · 5665817.flp(893Kb)


Сообщение отредактировал Boroda - Суббота, 04.03.2017, 23:41
 
dron68 Дата: Воскресенье, 05.03.2017, 01:59 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 2
Награды: 1
Репутация: 0
Статус: Offline
Помогите пдиз. Подключил серво. Блютуз. Ремоте ху. А сервомашигка дергается и не слушается. Я новичок
Спасибо
 
TipTopBY Дата: Воскресенье, 05.03.2017, 10:41 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Проверил. При загручке показывает информационный экран, ка надо. Но вращение энкодера экраны не переключает. Если сместить пины энкодера Меню, то экраны начинают перключаться, в меню входит, но соответственно энкодер в меню не работает.
 
TipTopBY Дата: Воскресенье, 05.03.2017, 11:17 | Сообщение # 12
Рядовой
Группа: Проверенные
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Как говорил выше, если сделать программно 2 энкодера, на разных пинах, то все работает. Я соединил на плате пины этих твух програмных энеодеров. Вся заработало, хотя я не уверен что это нормальный способ. Причина проблемы с одним блоком энкодера мне кажеться кроеться в прерывании на пинах МК.

Ещё один нюанс, при входе в Меню оказываешься сразу в пункте Exit, хотя по входу Reset должно происходить сброс меню в 1-й пункт. Я так же установил "Сбрасывать меню по переднему фронту входа En", эти настройки не привели к успеху. Проблема осталась.
Прикрепления: proga1.flp(901Kb)
 
Boroda Дата: Воскресенье, 05.03.2017, 12:17 | Сообщение # 13
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
А давайте так попробуем! Оставил один энкодер, а дальше сигнал переменными передается. Сделал принудительный переход на 1й пункт.
Прикрепления: Menu_fan_1.flp(858Kb)


Сообщение отредактировал Boroda - Воскресенье, 05.03.2017, 12:30
 
TipTopBY Дата: Воскресенье, 05.03.2017, 12:56 | Сообщение # 14
Рядовой
Группа: Проверенные
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Все нормально.
Пару моментов для информации. Перекинул с входа MU на MD, что бы меню листало в нужную сторону.
При компиляции не подставляются номера пинов в энкодере, отредактировал уже в скетче вручную.

Добавил условие выхода из меню, установкой Exit:True , что бы меню настроек крутилось по кругу.

Выкладываю последний вариант. Для меня, пока, все проблемы решены. Огромная благодарность Boroda, за помощь.
Прикрепления: proga2.flp(940Kb)


Сообщение отредактировал TipTopBY - Воскресенье, 05.03.2017, 12:59
 
Boroda Дата: Воскресенье, 05.03.2017, 17:44 | Сообщение # 15
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Вот отредактированный блок энкодера с нормальными ногами.
Прикрепления: 3430960.ubi(141Kb)
 
Форум » Основной » Спросить у знатоков » Помощь новичку. Меню и энкодер. (Нужна помощь в поиске ошибки)
Страница 1 из 3123»
Поиск:

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