Микроконтроллеры | Ликбез по программированию PIC |
|
---|---|---|
Левон: Кроме всего прочего должен быть так называемый «код администратора», |
|
|
picmaniac:Или хотите использовать прерывание по изменению уровня? Если нет - сразу проверяем №1...№4 по очереди, затем возвращаемся на "ожидание ввода". Я предположил что раз кнопки мы подключили к RB4-RB7, то будем использовать прерывание по внешнему событию. picmaniac: И зачем многократно давать команду на включение светодиодов при нажатой кнопке? Один раз записали в защелку порта требуемую комбинацию, и просто ждем отпускания кнопки. Имелось в виду что при нажатой кнопке с/д должен гореть, после отпускания - погаснуть система должна перейти в режим ожидания ввода (прерывания по внешнему событию). Алгоритм изменю в этой части. Andy: Проще сразу на основании значения полубайта (четыре бита, по одному на кнопку) выдать еще четыре бита — по одному на светодиод Хорошая мысль! Но я предполагал использовать прерывания по внешнему событию. В принципе можно выбрать любой вариант или, как предлагает picmaniac, сделать оба варианта. |
|
|
Skit, имеется ввиду не "набор кода для открывания замка, чтобы выйти", а "набор кода изнутри помещения для удобства постановки на охрану, после чего свободно выходим и система сама включает охранный режим". Splav56, годится ли предложенная схема? Левон, что-то Вы исчезли? |
|
|
По поводу кнопок: предлагаю оформить для каждой кнопки и светодиода (шаблон, или как его правильно назвать?). #define LED1pin PORTB,0 ; ножка 1го светодиода т.е. командой #define мы присваиваем последовательности символов PORTB,1 более удобное в использовании метку LED2pin. Во время компиляции, компилятор автоматически выполнит замену LED2pin на PORTB,1. |
|
|
Очень хорошая мысль. Надеюсь, скоро начнем написание исходника. Предлагаю назвать проект likbez01.pjt |
|
|
У меня вот такая схема получилась (см. вложение). Пока рисовал, Splav56 свою прислал, и сразу вопросы появились: Просьба ко всем: по возможности не сильно поропиться: не каждый день получается на форум заглянуть. Хочется книгу, справчник поматрять, потом уже вопрос задать а тут за день на куратора "надавили" ТЗ обсудили-утвердили... Чувствую скоро до самих программаторов дойдем . Договаривались разжовувать - идти медленно и уверено. |
|
|
lolo2: почему в моей схеме "Конца" нету? |
|
|
Алгоритмы, в которых выполняется больше одной проверки состояния каждой клавиши — кощунство Они порочны даже не издевательством над микроконтроллером, а сложностью масштабирования. Когда захочется добавить пятую кнопку, потребуется добавить еще с десяток проверок. Уж если хочется обязательно пройтись по всем кнопкам, то можно обойтись вчего четырьмя проверками состояния клавиш и одним сравнением с нулем на каждую клавишу (кроме первой). Причем фрагменты «сравнить с нулем, установить значение» функционально одинаковые. И сложность алгоритма не вылезла из линейной: O (n). До окочания цикла вместо порта B можно использовать переменную (регистр). |
|
|
Пока я пытался нарисовать граф (плод трудов - присоединен), Andy уже и алгоритм предложил. |
|
|
|
||
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |