Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
Опрос 4 Бит порта
Konstantin32768 Дата: Сб, 13.02.2010, 01:08  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 5
Репутация: 0   ±
Замечания:   ±
На сайте с 03.02.2010

Статус: Offline

Всем доброго времени суток.

Вазникла залдача опросить младшие 4 бита порта с целью исключения влияния старших на ход выполнения программы. Причем на эти четыре бита будуть приходить значения от 0 до 15. При появлении, скажем "5" нужно выполнить дествие.
Прикинул примерно так:
IF PORTC.0=1 AND PORTC.1=0 AND PORTC.2=1 AND PORTC.3=0 THEN A=1
Т.е. при появлении кода 0101 переменной А присвоить "1"
Возник вопрос: можно ли эту задачу решить по дргому?

ЯНДЕКС Дата: 13.02.2010
brown Дата: Сб, 13.02.2010, 13:00  |                                                                                                                Сообщение # 2
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Записываем значение порта в переменную:
var1=PORTC
Маскируем старший полубайт
Quote (Konstantin32768)
с целью исключения влияния старших на ход выполнения программы
:
var1=var1 & %00001111
А потом по значению var1 используя операторы IF, SELECT CASE , LOOKUP, BRANCH, т.е. которые
вам подходят для дальнейшего хода выполнения программы.


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Konstantin32768 Дата: Сб, 13.02.2010, 13:21  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 5
Репутация: 0   ±
Замечания:   ±
На сайте с 03.02.2010

Статус: Offline

Спасибо!

Правильно ли я понял значение строки var1=var1 & %00001111 (присвоить var1 значение порта С в котором старшие 4 бита заменятся на "0" или проигнорируются, а младшие оставить без изменения)?

brown Дата: Сб, 13.02.2010, 13:27  |                                                                                                                Сообщение # 4
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Quote (Konstantin32768)
Правильно ли я понял значение строки var1=var1 & %00001111 (присвоить var1 значение порта С в котором старшие 4 бита заменятся на "0" или проигнорируются, а младшие оставить без изменения)?

Совершенно верно!


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Konstantin32768 Дата: Сб, 13.02.2010, 13:33  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Новенький
Сообщений: 5
Репутация: 0   ±
Замечания:   ±
На сайте с 03.02.2010

Статус: Offline

Спасибо! "+1"
Сообщение отредактировал Konstantin32768 - Сб, 13.02.2010, 13:42
brown Дата: Сб, 13.02.2010, 13:41  |                                                                                                                Сообщение # 6
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Quote (Konstantin32768)
Спасибо! Есть ли на форуме функция "+" за ответ? (не нашел )

Репутация +


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Konstantin32768 Дата: Сб, 13.02.2010, 13:43  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Новенький
Сообщений: 5
Репутация: 0   ±
Замечания:   ±
На сайте с 03.02.2010

Статус: Offline

Разобрался smile
  • Страница 1 из 1
  • 1
Поиск: