ARDUINO Программа работает не так как хотелось бы

Max234

✩✩✩✩✩✩✩
20 Мар 2024
2
0
Во всём этом начал вариться совсем недавно (если точнее в прошедшую субботу) и просмотрев некоторое количество обучалок гайвера решил сделать что то сам. Написал, опираясь на конспект, данную программку, и всё вроде работает, кнопочка переключает режимы, все дела, но мною было замечено, что переключение режимов происходит только тогда, когда полностью выполняется цикл for или мигание светодиодов. Как это можно исправить?
 

Вложения

viktor1703

★★★✩✩✩✩
9 Дек 2021
638
153
как, собсна, его правильно выложить?
Нажимаете на символ вставки кода, появляется окно, вставляете туда текст с кодом и готово.

переключение режимов происходит только тогда, когда полностью выполняется цикл for или мигание светодиодов
Микроконтроллер работает именно в так, как вы ему предписали. Запускается программа, переменная butt может иметь неизвестно какое значение, скорее всего 0, но это не точно. Проверяет состояние переменной butt, если 0, то начинает выполнять for: включать и выключать по очереди пины с 5 по 8, потом то же самое, но с 8 по 5, а-ля бегущий огонек.
Если butt равна 1, то blink пинами 5, 6, 7, 8 одновременно. Правильно? Что происходит, когда вы нажимаете (отпускаете) кнопку? Срабатывает прерывание, в переменную butt записывается 1 (0) и МК возвращается выполнять программу в том месте, где его прервали, то есть в for, он дорабатывает до конца. И loop повторяется сначала. И только тогда происходит смена режима.
 

Вложения

Изменено:
  • Лойс +1
Реакции: Max234

Jerej

✩✩✩✩✩✩✩
2 Окт 2022
16
2
@Max234
Хочешь сразу выходить в другой режим?
Воткни сразу же под строчкой с каждым for такую строку:
if (butt == 1) break;
👋