Шарманка.
Сейчас я тебе покажу, как можно сделать цифровую шарманку. Помнишь,
как она устроена?
Там барабан с торчащими гвоздями и пружинки на разные тона. Гвозди
вращаются, дергают пружинки - они звякают. Получается расколбасный
музон. А что если нашу шарманку развернуть в ленту. Не правда ли гвозди
похожи на единички ? ;))))
Лентой будет счетчик, считающий от нуля, скажем, до FF.FF.FF.FF и потом
опять до нуля или еще какой величины, сколько надо столько и сделаем. А
наши подпрограммы будут играть роль пружинок, цепляясь в нужных местах
— сравнивая свою константу с текущим значением счетчика.
Совпало? Делаем “ДРЫНЬ!”
Осталось только прописать на временном цикле нашей шарманки где и что
должно запускаться. И тут есть одна очень удобная особенность — для
построения циклических последовательностей нам достаточно отлавливать
один разряд.
Скажем, считает шарманка от 0 до 1000, а нам надо 10 раз мигнуть диодом.
Не обязательно втыкать 10 обработчиков с разными значениями. Достаточно
одного, но чтобы он ловил значение **10. Все, остальное нам не важно. И
сработает он на 0010, 0110, 0210, 0310, 0410, 0510, 0610, 0710, 0810, 0910.
Более частые интервалы также делятся как нам надо, достаточно влезть в
другой разряд. Тут надо только не забыть отрезать нафиг старшие разряды,
чтобы не мешались.
А учитывая, что считать мы там будем в двоичном системе, то ловить
кодовую посылку станет еще приятней — хлоп ее по битмаске и все. Даже
проверять все байты не нужно.