Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
10.12.2014, 01:01
|
#1
|
Прописка
Регистрация: 27.10.2010
Сообщений: 133
Сказал спасибо: 24
Сказали Спасибо 53 раз(а) в 41 сообщении(ях)
|
Опрос кнопок MEGA8
Здравствуйте! помогите плиз с кусочком кода на "С" (пишу в компиляторе CVAVR).
задача такова: восемь кнопок одной стороной сидят на массе а второй подключены к PORTD (PORTD настроен и включена подтяжка), как написать что если ЛЮБЫЕ две из восьми кнопок выключены тогда PORTB.1=0 а если все восемь включены тогда PORTB.1=1 ?
__________________
- Слово на "б" знаешь ? - ??? - "Береги себя"...
Последний раз редактировалось neox-neox; 10.12.2014 в 01:23.
|
|
|
|
10.12.2014, 01:25
|
#2
|
Прописка
Регистрация: 27.10.2010
Сообщений: 133
Сказал спасибо: 24
Сказали Спасибо 53 раз(а) в 41 сообщении(ях)
|
Re: опрос кнопок MEGA8
Сообщение от С.М.С
|
всмысле кнопки на Д0...7 порту и в Д.1 выводить?
|
УУПС ошибся мало,мало .... уже исправил
__________________
- Слово на "б" знаешь ? - ??? - "Береги себя"...
|
|
|
|
10.12.2014, 01:31
|
#3
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: опрос кнопок MEGA8
Если позиция нажатых кнопок не важна, то считать порт и сосчитать количество нулей/единиц.
В противном случае анализировать код нажатых кнопок.
|
|
|
|
10.12.2014, 01:49
|
#4
|
Гражданин KAZUS.RU
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
|
Re: опрос кнопок MEGA8
где-то так, не учитывая других состояний.
Цитата:
|
temp =0;
if (PIND.0==1)temp++;
if (PIND.1==1)temp++;
if (PIND.2==1)temp++;
if (PIND.3==1)temp++;
if (PIND.4==1)temp++;
if (PIND.5==1)temp++;
if (PIND.6==1)temp++;
if (PIND.7==1)temp++;
if (temp == 2) PORTB.1 = 0;
if ((PIND.0==0) &&(PIND.1==0) &&(PIND.2==0) &&(PIND.3==0) &&(PIND.4==0) &&(PIND.5==0) &&(PIND.6==0) &&(PIND.7==0) )PORTB.1 = 1;
|
|
|
|
|
10.12.2014, 02:13
|
#5
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: опрос кнопок MEGA8
Сообщение от С.М.С
|
где-то так
|
else забыли.
|
|
|
|
10.12.2014, 02:24
|
#6
|
Заблокирован
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
|
Re: опрос кнопок MEGA8
Сообщение от С.М.С
|
где-то так
|
Последнее страшное логическое условие надо заменить на:
Цитата:
|
if (temp == 0) PORTB.1 = 1;
|
Последний раз редактировалось Yurkin2014; 10.12.2014 в 02:42.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:02.
|
|