реклама на сайте
подробности

 
 
> Вопрос новичка по C
Jagupop
сообщение May 17 2007, 18:10
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 15-05-07
Пользователь №: 27 727



Тренируюсь на ATTINY 2313. Повесил кнопку на PD0, другой конец - на землю. Как проверить ее нажатие? Я сделал так:

while(PIND == 0xFF)

перед этим, естественно, было в программе:

DDRD = 0x00;
PORTD = 0xFF;

но реакции на нажатие кнопки нет. Поставьте на путь истинный!!

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение May 17 2007, 18:45
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



А какой реакции Вы ждете?

давайте по-другому.
Давайте подключим кнопку к PD0, а к PB0 - светодиод (тоже между пином порта и землей, ну резистор не забудем есстессно).

пишем
Код
int main(void)
{
   DDRD = 0x00;
   PORTD = (1 << PD0);

   DDRB = (1 << PB0);
   for(;;)
   {
      // в цикле читаем значене кнопки, инвертируем и выводим на светодиод
      if ( PIND & (1 <<  PD0))  // кнопка отжата?
          PORTB &= ~(1 << PB0); // потушить светодиод
      else // нажата?
          PORTB |= (1 << PB0); // зажечь
   }
}


Если удерживать кнопку нажатой - светодиод будет светиться.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01353 секунд с 7
ELECTRONIX ©2004-2016