Переключение режимов одной кнопкой

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
igumich
Встал на лапы
Сообщения: 100
Зарегистрирован: Сб ноя 06, 2010 19:17:02
Откуда: Россия, Омск

Переключение режимов одной кнопкой

Сообщение igumich »

Доброго времени суток! Я только начинаю осваивать прогр. AVR на С через CodeVision
Как можно осуществить:
поочерёдное переключение трёх светодиодов одной кнопкой?
поочерёдное переключение трёх подпрограмм?
Желательно с комментарием.
Реклама
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Переключение режимов одной кнопкой

Сообщение dr.doc »

В качестве подсказки: Циклический кольцевой счетчик, вместо 4-ки в котором всегда будет получаться 1 при увеличении. Изменение проводить при гарантированной защите от дребезга (задержка). Каждому значению счетчика соответствует свой светодиод (условие) или подпрограмма.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Реклама
Аватара пользователя
romazan
Потрогал лапой паяльник
Сообщения: 335
Зарегистрирован: Чт май 21, 2009 13:54:07
Откуда: Москва
Контактная информация:

Re: Переключение режимов одной кнопкой

Сообщение romazan »

Как-то вот так

Код: Выделить всё

unsigned char a;
while(1){ ;вечный цикл
  if(PINB & 0x1) { ; если нажата первая кнопка 0х1
    a++;
    if(a>N) a=1;
    switch a{
      case 1: function1(); break;
      case 2: function2(); break;
      case 3: function3(); break;
      case N: functionN(); break;
      ...
    }
  }
}
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Переключение режимов одной кнопкой

Сообщение Мастер Ломастер »

romazan писал(а):Как-то вот так

Код: Выделить всё

  if(PINB & 0x1) { ; если нажата первая кнопка 0х1
ну сколько раз было сказано: не давайте плохих советов, не советуйте, если сами еще не понимаете, как оно все работает! нельзя определять состояние кнопки тупым однократным опросом пина!
есть же отдельная тема (кстати, не единственная - про кнопки регулярно вопрошают), читайте ее, начиная отсюда: http://www.radiokot.ru/forum/viewtopic. ... 8#p1110548
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
romazan
Потрогал лапой паяльник
Сообщения: 335
Зарегистрирован: Чт май 21, 2009 13:54:07
Откуда: Москва
Контактная информация:

Re: Переключение режимов одной кнопкой

Сообщение romazan »

Д понятно что простого опроса тут не достаточно, из-за дребезга все хаотично будет. Я человеку пример реализации показал, так как если его просто скопировать, он все-равно работать не будет
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»