WildCat писал(а): ↑21.02.2023{, 12:41}
Ну или использовать командоаппарат и тогда можно вообще в произвольной последовательности диоды включать.
Тяжеловат он в понимании логики для новичка. Да и для моргания светодиодов избыточен.
Ок давайте знакомиться с битами.
Это совсем не низкоуровневое программирование, как считают некоторые. На самом деле все просто до банальности.
Сделаем пару-тройку примеров и все станет понятно.
Итак
Есть у нас переменная типа Byte. Это 8 бит. Вот ими то и будем оперировать.
Записав к примеру число
48 в бинарном виде получаем
b00110000
Штатный блок
Byte->Bits при подаче на вход
48 выдаст логическую единицу на выходах
Bit-4 и
Bit-5
(Биты считаются с нулевого и справа налево)
Вот и вся наука.
Подавая на вход блока
Byte->Bits значения от 0 до 255, получаем разное сочетание единиц и нулей на выходах.
.
Есть некоторая сложность в переводе десятичного числа в бинарный формат. НО! FLProg легко работает и с бинарным форматом.
На входы блоков и в константы переменных можно вводить
b00110000 и все будет точно так же работать.
А если выводить разные числа последовательно, то можно получить абсолютно любой эффект. При этом всё будет достаточно наглядно.
b00000000
b00000001
b00000010
b00000100
b00001000
b00010000
b00100000
b01000000
b10000000
Светящийся светодиод "побежит" именно так, как единица в этой последовательности.
Единственный момент, это то, что при вводе бинарного числа, нули слева удалятся. Точно так же как и в десятичном формате.
.
А огромный блок с большим количеством входов можно заменить на блок
"Получение элемента массива", создав в нем всю последовательность.
.
Конечно же будет лучше, если сохранить такой массив в EEPROM, но штатных средств для этого нет.
Однако можно воспользоваться штатной записью и чтением значений в EEPROM, выполнив запись один раз при старте контроллера.