Микроконтроллеры | Ликбез по программированию PIC |
|
---|---|---|
Andy: читать из него без особой надобности не следует Splav56, да, пропустил я одну ветвь - из 0 в 0, если нажато более 1 кнопки semm, по такому принципу можно будет сделать на втором этапе, с таблицей для различных положений кнопок. |
|
|
Andy: В начале обнуляем весь байт, а потом Andy, если посмотреть на схему, то мы увидим, что на вывод работает только младший полубайт (ниббл) порта В (RB0:RB3), а старший полубайт порта В (RB4:RB7) работает на ввод, поэтому если оперировать байтом, то люди точно запутаются. И второе: я не нашел в алгоритме проверки на замыкание одновременно двух кнопок, например №1 и №2. Конечно написать "portB!=0" в условии ветвления конечно красиво , но далеко не все помнят что такое факториал и как он вычисляется, а тем более как будет работать это место в алгоритме. |
|
|
Splav56: И второе: я не нашел в алгоритме проверки на замыкание одновременно двух кнопок, например №1 и №2. Ура! Дошло! Цитата из поста Andy:Если нажата вторая кнопка, смотрим, есть ли в порте В какое-то отличное от нуля значение. Если есть (а это значит, что какой-то светодиод уже включен), обнуляем порт и заканчиваем цикл. Если нет (т. е. port B == 0), записываем туда двоичное 00000011 (зажгли два светодиода) и переходим к третьей кнопке. m! = 1*2*3...*(m-1)*m В нашем случае m=3 (кнопки №2,№3,№4, кнопка №1 не проверяется), следовательно комбинаций будет m!(B!)=1*2*3=6. |
|
|
|
||
Неожиданные выводы с факториалом port B != 0 это проверка на неравенство значения нулю. Да, другую половину порта я не доглядел. Но что мешает взять другой порт? |
|
|
Splav56: я не нашел в алгоритме проверки на замыкание одновременно двух кнопок, например №1 и №2. Сравнение с нулем значения, уже содержащегося в половинке порта B, и есть проверка на замыкание двух кнопок. Если на предыдущем шаге установлен хотя бы один бит, то нуля уже не будет, значит, где-то раньше (не важно, где) было установлено, что нажата кнопка (любая). |
|
|
Andy: Неожиданные выводы с факториалом А все соответствует. Возможно такое написание и пошло от факториала? |
|
|
Пора тогда нарисовать алгоритм целиком. Граф, предлагаемый к обсуждению и утверждению прилагаю. |
|
|
А это его описание. На полную точность не претендует. Если есть замечания и вопросы, то будем обсуждать дальше. Может кто-нибудь оформит покрасивее? |
|
|
Странно, файл не прилепился, попробую еще. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |