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

Снимок экрана 2021-05-27 203946.jpg
27 Мая 2021 в 18:41
182 +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 Апр 2024 в 18:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир