Здравствуйте, не могу разобраться с кодом, к плате ATmega8 подключены три кнопки и три потребителя, нужно настроить на 8 режимов, пока 1 кнопка - 1 потребитель все работает идеально, только появляются в коде условия 1 кнопка - 2 потребителя или наоборот режими начинают друг другу мешать и начинается некорректная работа контролера. что прописать в коде что бы условия при исполнении друг другу не мешали.

Снимок экрана 2021-05-27 203946.jpg
27 Мая 2021 в 18:41
164 +1
0
Ответы
1

Для того чтобы избежать взаимного влияния режимов при использовании нескольких кнопок и потребителей, вам нужно добавить проверку на текущий режим перед выполнением действий для каждой кнопки. Таким образом, каждая кнопка будет работать только в рамках своего текущего режима.

Например, если у вас есть три кнопки btn1, btn2, btn3 и три потребителя consumer1, consumer2, consumer3, и вам нужно настроить 8 режимов работы, то код может выглядеть примерно так:

#include <avr/io.h>
#define btn1_pin .. // пин кнопки 1
#define btn2_pin .. // пин кнопки 2
#define btn3_pin .. // пин кнопки 3
#define consumer1_pin .. // пин потребителя 1
#define consumer2_pin .. // пин потребителя 2
#define consumer3_pin .. // пин потребителя 3
int mode = 0;
void setup()
{
// настройка пинов кнопок
// настройка пинов потребителей
}
void loop()
{
// считывание состояния кнопок
if (digitalRead(btn1_pin) == HIGH)
{
if (mode == 0)
{
// выполнение действия для кнопки 1
digitalWrite(consumer1_pin, HIGH);
}
else if (mode == 1)
{
// выполнение другого действия для кнопки 1
digitalWrite(consumer2_pin, HIGH);
}
// добавьте другие условия для других режимов
}
// добавьте аналогичные блоки для остальных кнопок
// ожидание
}

Таким образом, каждая кнопка будет выполнять разные действия в зависимости от текущего режима, и взаимное влияние режимов будет исключено. Не забудьте настроить выводы для определения состояния кнопок и управления потребителями.

17 Апр в 18:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир