|
jokushmo
|
|
Опрос кнопок и индикация.23.11.2010, 05:27. Показов 13953. Ответов 18
Метки нет (Все метки)
Помогите пожайлуста. Пишу на Си. Пытаюсь на порт (не важно какой) повесить кнопку и динамическую индикацию. Делаю так включаю порт на ввод, опрашиваю кнопку. Переключаю на вывод , вывожу. Чего-то получается, но как-то "сыро". Кто-то страдал таким, и вообще как грамотно это сделать?
|
|
| 23.11.2010, 05:27 | |
|
Ответы с готовыми решениями:
18
Опрос сенсорных кнопок опрос 96 кнопок Опрос кнопок (PIC16F877) |
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
| 23.11.2010, 05:40 | |
|
В файле - схема подключения на один порт индикатора и кнопок. Там же - пример кода. Реализованы часы, но думаю, что в качестве толчка к правильным действиям - то, что доктор прописал. ;)
./styles/iosyitistromyss/imageset/icon_topys_attach.gif" width="14" height="18 [147.49 Кб]
0
|
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
| 23.11.2010, 05:42 | |
|
А на будущее - хотя бы код выложили, чтобы не пальцем в небо тыкать в попытках задействовать свою телепатию... ;)
0
|
|
|
jokushmo
|
||||||
| 23.11.2010, 06:05 | ||||||
|
Да мне идея важна.
У меня так, что в принципе как и в Вашем вложении out DDRB,temp ;riymitiotyze port B as all Outputs out PORTB,temp ;omd clear LEDs
|
||||||
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
||
| 23.11.2010, 06:12 | ||
|
Да, для переключения ддр нужно хотя бы одну команду выполнить. Не важно какую.
А что означает выражение
0
|
||
|
jokushmo
|
|
| 23.11.2010, 06:22 | |
|
Я в железе не проверял, по-пробовал в глючном протеусе у него ложные срабатывания кнопки, на порту висит 1 после DDRD=0; PORTD=0;
Дальше я опрашиваю if (PIND.0==1) и у меня ложно срабатывает кнопка. Т.е. все правильно и все будет работать? |
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
| 23.11.2010, 06:52 | |
|
А кнопка верно подключена? Такое ощущение, что она неверно подключена... Имхо, проще подключить кнопку чтобы она замыкала на корпус с подтяжкой к + питания (около 10К). И проверять, соответсвенно, не на 1, а на 0.
Такая мысль связана с тем, что как раз для того, чтобы данные из вывода появились на вводе нужно сделать пустую команду. А для опроса данных такая команда не нужна. Такое ощущение, что вы сами управляете входом (типа кнопкой), т.е. кнопка ничего не меняет, т.е. она подключена неверно.
0
|
|
|
jokushmo
|
|
| 23.11.2010, 07:14 | |
|
Ну, разницу куда подвязывать кнопку не вижу, у меня она подвязана на питание, а светодиод на землю.Кому интересно вот в протеусе. Не я придумал,но мне надо управлять.
И я не говорю, что вообще не работает. Роботает, но невсегда. |
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
| 23.11.2010, 08:26 | |
|
В данной схеме при опросе кнопок надо чтобы транзисторы 4 и 5 были закрыты. Т.е. принудительно подавать 0 на ноги, куда подключены базы этих транзисторов.
0
|
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
| 23.11.2010, 09:28 | |
|
Кстати,
1. эмитер транзистора 5 не подключен на землю.... 2. резисторы 14 и 9 я бы поставил правее, за кнопками... Т.е. точка соединения резистора от кнопки и одного из этих подключена к мк, как это сделано для третьей кнопки
0
|
|
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
|
| 23.11.2010, 10:19 | |
|
У вас не схема, а черте-што.
Кнопки опрашивать с интервалом 10-50 мс, чтоб от дребезга избавиться. Есть куча программных способов подавления дребезга контактов, погуглите на тему.
0
|
|
|
jokushmo
|
|
| 23.11.2010, 14:54 | |
|
Землю Вам исправил(набрасал быстро-пропустил) . А на летели-то, схема не моя, ею надо управлять. Так видит производитель холодильников.
|
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
| 23.11.2010, 16:41 | |
|
А что за марка? Как раз присматриваю холодильник, буду знать чего не стоит брать.
0
|
|
|
0 / 0 / 0
Регистрация: 23.05.2007
Сообщений: 792
|
||
| 23.11.2010, 16:51 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
|
|
| 23.11.2010, 17:09 | |
|
https://www.cyberforum.ru/savedimages/2010/11/23/sj9favphmnubknhtrd.jpg Когда хотим зажечь сегмент - подаём ноль (DDR=1, PORT=0), когда хотим потушить - отпускаем или вешаем на подтяжку (DDR=0, PORT= 1 или 0). Если прибить пин к питанию (DDR=1, PORT=1), то, при нажатии кнопки, порт сгорит. Чтобы прочитать кнопку - вешаем пин на подтяжку. И читаем. 1 - не нажата, 0 - нажата. Вообще идея мне не нравится, ибо при нажатой кнопке, соответствующий сегмент будет постоянно гореть. А это не есть гуд.
0
|
|
|
jokushmo
|
|
| 23.11.2010, 23:26 | |
|
Холодильник Whirpoot(из серии, что плачет).
Резики на землю кидать нельзя,ибо смотрите схему(в базе транзюка 10к,он не откроется нефига) И так могу(как ниже схема, даже работает норм),буду наверное пробовать в железе,только времени сейчас нет к концу недели только проверю. <Изображение удалено> |
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
||
| 24.11.2010, 05:10 | ||
0
|
||
|
jokushmo
|
|
| 24.11.2010, 06:07 | |
|
Нашел таки глюк, когда нажимаю кнопку на PORTD.1 в протеусе через светодиоды на PORTD.2 тоже поступает 1. Это что ж за светодиоды в протеусе с утечкой такой что МК срабатывает?
З.С. тему можно закрывать еще раз убеждаюсь протеусу верить нельзя. |
|
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
||
| 24.11.2010, 07:22 | ||
0
|
||
| 24.11.2010, 07:22 | |
|
Помогаю со студенческими работами здесь
19
Периодический опрос кнопок на MCS-51 опрос кнопок, как исправить? PIC16С84/F84. Индикация логического произведения кода нажатых кнопок и 0Ch FreeRTOS и опрос кнопок и передача в таск Опрос клавиатуры (несколько нажатых кнопок сразу) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|