15.05.2015, 20:03
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Помогите в моделировании схемы
не-не. Даже пустой МК отдельно и безо всяких мультиплексоров, с отсоединенными от UART проводами - и то на входе RX UART (приём) постоянно удерживается высокий лог.уровень на всем протяжении.
PS/// АРХИ-ГЕНИАЛЬНО!!! эврика ![Улыбка](images/smilies/icon_smile.gif)
анализируя регистры и код PIC18, нашел все-таки проблему.
Оказалось, что элементарная ошибка в порядке инициализации UART-а давала такую беду. Всего лишь потребовалось изменить порядок.
И вот - работает. Во вложении - исправленная прошивка к PIC18F452, ее нужно подключить в свойствах МК.
Однако, остаются замечания.
Придуманные на схеме резисторы на выводах МК убирать нельзя, особенно на некоторых портах. Причина проста - нуу очень кривой код прошивки, когда порты зачем-то переводятся со входов на выходы, а потом наоборот. В частности, на RC7, к которому подключен выход мультиплексора, очень легко получить КЗ из-за того, что с обеих сторон будут выходы. Для ограничения тока и стоят резисторы. То же самое и с кнопками. Если не будет резисторов, то недайбог в момент включения питания будет случайно нажата кнопка. И тогда +5V накоротко замкнется с выходом, на котором 0. но в схеме предусмотрительно стоят резисторы по 510 Ом, которые не позволят сгореть. ха-за, во дела, а... из-за криво написанной прошивки такие сложности, а
Я так понял, это устройство управляет и поворотом, и наклоном? тогда надо два датчика-энкодера. Получается, что котроллеров оси должно быть две штуки на один управляемый прибор - на поворот и на наклон. так?
Последний раз редактировалось NewWriter; 15.05.2015 в 20:30.
|
|
|
|
15.05.2015, 21:41
|
|
Прописка
Регистрация: 18.05.2011
Адрес: Ненька Україна
Сообщений: 157
Сказал спасибо: 20
Сказали Спасибо 58 раз(а) в 25 сообщении(ях)
|
Re: Помогите в моделировании схемы
adray, Организуй опрос кнопок аналогичным образом. И не надо бояться что где-то когда-то замкнёт. Делал стенд промывки форсунок с таким опросом клавы, никаких проблем
|
|
|
|
15.05.2015, 22:02
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Помогите в моделировании схемы
...а теперь представим, что замыкаются одновременно две кнопки в столбце. Резиновые кнопки может ничего и не навредят, а вот микрокнопки с железными контактами - да. По меньшей мере, исказят выводимую на индикатор инфу, и в некоторых случаях - необратимо (до перезапуска).
чтобы этого не было, нужно линии клавиатуры отделять диодами от линий индикации.
И топикстартер уже писал, что далек от программирования в принципе
|
|
|
|
15.05.2015, 22:27
|
|
Прописка
Регистрация: 18.05.2011
Адрес: Ненька Україна
Сообщений: 157
Сказал спасибо: 20
Сказали Спасибо 58 раз(а) в 25 сообщении(ях)
|
Re: Помогите в моделировании схемы
NewWriter, Да хоть три одновременно....Будет зафиксирована первая по опросу. Смотрите код. А не версии кидайте. Проверено и много лет работает в железе.
Ну и как он хочет что-то запустить, если в программировании ни бум бум? А игрушку хочет чичась. С чего-то надо начать.
|
|
|
|
15.05.2015, 22:33
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Помогите в моделировании схемы
Да на опрос кнопок то пофик, а вот на линии индикации, которые замкнутся между собой нажатыми кнопками, когда начнется цикл индикации - это уже не пофик.
Че там код смотреть, чего я там в нем не видел то...
|
|
|
|
15.05.2015, 22:33
|
|
Временная регистрация
Регистрация: 13.05.2015
Сообщений: 50
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите в моделировании схемы
Сообщение от NewWriter
|
не-не. Даже пустой МК отдельно и безо всяких мультиплексоров, с отсоединенными от UART проводами - и то на входе RX UART (приём) постоянно удерживается высокий лог.уровень на всем протяжении.
![](http://savepic.su/5654842.png)
PS/// АРХИ-ГЕНИАЛЬНО!!! эврика ![Улыбка](images/smilies/icon_smile.gif)
анализируя регистры и код PIC18, нашел все-таки проблему.
Оказалось, что элементарная ошибка в порядке инициализации UART-а давала такую беду. Всего лишь потребовалось изменить порядок.
И вот - работает. Во вложении - исправленная прошивка к PIC18F452, ее нужно подключить в свойствах МК.
![](http://savepic.su/5695797.png)
![](http://savepic.su/5650741.png)
Однако, остаются замечания.
Придуманные на схеме резисторы на выводах МК убирать нельзя, особенно на некоторых портах. Причина проста - нуу очень кривой код прошивки, когда порты зачем-то переводятся со входов на выходы, а потом наоборот. В частности, на RC7, к которому подключен выход мультиплексора, очень легко получить КЗ из-за того, что с обеих сторон будут выходы. Для ограничения тока и стоят резисторы. То же самое и с кнопками. Если не будет резисторов, то недайбог в момент включения питания будет случайно нажата кнопка. И тогда +5V накоротко замкнется с выходом, на котором 0. но в схеме предусмотрительно стоят резисторы по 510 Ом, которые не позволят сгореть. ха-за, во дела, а... из-за криво написанной прошивки такие сложности, а
Я так понял, это устройство управляет и поворотом, и наклоном? тогда надо два датчика-энкодера. Получается, что котроллеров оси должно быть две штуки на один управляемый прибор - на поворот и на наклон. так?
|
Да полуучается что нам надо управлять углом азимута и элевации
|
|
|
|
15.05.2015, 22:44
|
|
Прописка
Регистрация: 18.05.2011
Адрес: Ненька Україна
Сообщений: 157
Сказал спасибо: 20
Сказали Спасибо 58 раз(а) в 25 сообщении(ях)
|
Re: Помогите в моделировании схемы
NewWriter, Сударь. Вы упустили один момент. Вызов функции индикатора и опроса клавы происходят последовательно, а не одновременно. В опросе клавы инициализируются порты по окончании переводятся обратно. И никак не влияют на показания. Хоть все пальцы задействуйте.....
|
|
|
|
15.05.2015, 22:53
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Помогите в моделировании схемы
а получится ли убирать пальцы с кнопок с такой же скоростью, с которой последовательно сменяется опрос клавиатуры и пересылка данных на дисплей? ![Улыбка](images/smilies/icon_smile.gif) и как бы вот нажимать на кнопки тогда, когда не происходит обмен с дисплеем? достаточно посмотреть графики, чтобы убедиться в возможности конфликта. нужно просто представить, что в момент обмена с дисплеем будут нажаты две кнопки в столбце и...
...всё хорошо работает до тех пор, пока кнопки нажимаются по одной и клавиатура резиновая.
...и всего лишь 4 диода уберут проблему вообще
Последний раз редактировалось NewWriter; 15.05.2015 в 22:55.
|
|
|
|
15.05.2015, 23:05
|
|
Прописка
Регистрация: 18.05.2011
Адрес: Ненька Україна
Сообщений: 157
Сказал спасибо: 20
Сказали Спасибо 58 раз(а) в 25 сообщении(ях)
|
Re: Помогите в моделировании схемы
NewWriter, Я спорить не буду. Проект отрабатывал в Проте. Конфликтов нет. Практическое исполнение в железе. Полёт отличный. Если Вы логику работы не понимаете. Тогда о чем разговор? Принцип простой до безумия. Во время опроса клавы порт В переводится на вход, а порт С на выход (лог 1), по окончании - порт В на выход, порт С на вход. Далее вывод на индикатор, если надо. Всё. Хоть Ламбаду танцуйте, конфликта никогда не будет. Закончили флуд.
Последний раз редактировалось MONIKYS; 15.05.2015 в 23:09.
|
|
|
|
15.05.2015, 23:21
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Помогите в моделировании схемы
это не флуд ![Улыбка](images/smilies/icon_smile.gif) я отлично понимаю логику работы. В железе работает до тех пор, пока все нормально.
Я про другое - если нажимающий на кнопки не захочет отпускать нажатые вместе кнопки после цикла опроса клавиатуры. И тут наступает момент обмена с дисплеем. Это все равно, что перемкнуть линии дисплея между собой. МК пытается передать в дисплей например 1010, а перемкнутые одновременным нажатием кнопок линии не позволят и дисплей получит 0010. Ну ладно бы если передаются данные, а если будут передаваться команды, и например вместо команды перевода строки получится команда выключения дисплея. и всё - хана до следующего перезапуска.
Протеус с такой моделью клавиатуры не в состоянии изобразить одновременное нажатие кнопок. Эта модель клавиатуры сбрасывает состояние замыкания сразу же. А вот если вместо этой модели поставить матрицу из отдельных кнопок Button с фиксацией нажатия - тогда другое дело
Последний раз редактировалось NewWriter; 15.05.2015 в 23:30.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:24.
|
|