| Микроконтроллеры | Ликбез по программированию PIC | |
|---|---|---|
| picmaniac: нежелательно устанавливать/сбрасывать биты командами bsf/bcf |  | |
| Это относится только к регистрам портов. |  | |
| picmaniac: Splav56, предлагаю проиграть ситуацию по предложенному графу. Вначале все кнопки отпущены, затем нажмем кн.1, а затем (не отпуская кн.1) еще и кн.2. В каком состоянии окажемся? В состоянии "Запрет" - функция воздействия Х5 (нажато 2 и более кнопок), отклик Y5 (погасить все с/д). |  | |
| Splav56: В состоянии "Запрет" - функция воздействия Х5 (нажато 2 и более кнопок), отклик Y5 (погасить все с/д). |  | |
| gan: мало того, надо продумать насчёт дребезга Да помним мы про дребезг контактов. В программе будет введена задержка на 20 мс, но на данном этапе рассмотрение таких мелочей обычно не делают. Включим этот эпизод в полный алгоритм. |  | |
| Вот и алгоритм: http://b.foto.radikal.ru/0601/da3ce1b68ea2.gif PS: в условиях проверки на нажатие клавиш нужно RB3:RB0=Fh заменить на RB0=1. Этого достаточно. |  | |
| Всё равно не пойдёт. Нажали кнопку, первый раз заходим на условие RB=1, всё нормально, зажигаем с/д. На следующем цикле  кнопку отпустить не успеем, опять попадаем на это же условие RB=0, тушим светодиоды, в следующем цикле опять поджигаем и т.д. нечётный цикл- зажигаем, чётный- гасим (пока нажата кнопка). |  | |
| Народ, спасибо за обсуждение, я тут всё копирую, печатаю, изучаю... Один вопрос по схеме... Там входы PIC-a (RB4-RB7) не нужно ли "подтянуть" к "+"? Или это делается программно? А ещё, дребезг контактов надо ли учитывать или как? |  | |
| Левон: не нужно ли "подтянуть" к "+"? |  | |
| gan: Всё равно не пойдёт. Нажали кнопку, первый раз заходим на условие RB=1, всё нормально, зажигаем с/д. На следующем цикле кнопку отпустить не успеем, опять попадаем на это же условие RB=0, тушим светодиоды, в следующем цикле опять поджигаем и т.д. нечётный цикл- зажигаем, чётный- гасим (пока нажата кнопка). gan где Вы такое увидели??? И что такое RB=1 и RB=0??? Нет таких. Есть конкретно 8 бит порта В: RB0 - RB7 из которых при проверке нас интересует только бит RB0, т.к. он устанавливается в ноль после обработки нажатия любой кнопки! Пишите, пожалуйста точнее! Левон: Один вопрос по схеме... Там входы PIC-a (RB4-RB7) не нужно ли "подтянуть" к "+"? Или это делается программно? А ещё, дребезг контактов надо ли учитывать или как? Левон, скачайте алгоритм. Подтягивающие резисторы включаются программно, Вы правильно заметили.  Алгоритм опроса кнопок в MPLAB не прогонял, т.к. во-первых подпрограмма  еще не написана, а во-вторых и сам MPLAB 5-й версии я еще не установил.  Вопрос по графу: всех устраивает опубликованный вариант? Будем утверждать или еще уточнять? Правда мне совсем непонятно, облегчает-ли граф составление алгоритма? По-моему граф построить труднее, чем алгоритм.  |  | |
| Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь | © 2003—2025 | |||