Есть микроконтроллер (atmega 16-16AU SMD, если интересно)
Вот это было дельное уточнение. А зачем такой мощный контроллер? Хватает и ATtiny13 или ATtiny25 у которых всего 8 ног.
1) Код пользователя COKPOWEHEU
Этот код использовать не стоит, он писался больше как доказательство возможности такого извращения. Если вы не обратили внимание на контекст, кнопка висит на ресете контроллера. Рабочая и отлаженная версия вместе с моделью для протеуса
тут, только надо после изменения режима (переменной mode) добавить обнуление счетчика времени (переменная sec или time в зависимости от версии). Ну и режимы тогда поменять местами, у меня первым идет режим с фиксированным временем.
начиная с момента переключения на режим Б, сразу же пойдет отсчет времени
Все мои версии делались в расчете на то, что счет продолжается. Впрочем, добавить обнуление переменной не проблема.
s-- - что это значит?
Учите Си. Это уменьшение переменной на 1, а проверка в while означает что цикл будет выполняться пока переменная не равна нулю.
2) Предложение ARV
Вопросы:
1) Вешаем на сброс - т.е. на RESET ?. И с каждой подачи на RESET будет перезапускаться программа?
Да, но программа это отслеживает (у ARV используется переменная в EEPROM, у меня в ОЗУ) и при каждом перезапуске меняет режим. Единственное что функция рандома может в таких условиях неправильно работать.
Не могли бы, пожалуйста, привести пример? Мне достаточно сложно понять, как это сделать програмно.
Именно про него, точнее про мою реализацию его алгоритма, вы спрашивали "где кнопка".
4) Второй вариант кода от COKPOWEHEU выдал ошибки при компиляции:
Писалось под ATtiny13, там у регистров другие имена. Думаю, будет полезнее если сами разберетесь как это исправить.
Кто-то не понял, о чем я просил. Возможно повторюсь, но попытаюсь более понятно объяснить.
Кнопка с фиксацией или без? Планируется ли индикация режима?