Цитата(TViT @ Mar 24 2017, 12:08)

Хотелось бы что-то попроще. Итак не успевает моргает свет при управлении с пульта пока обрабатывает прерывания и вычисляет команду, а управление симистором на это период
Попробуйте точнее замерить длительности, может так случиться, что длительности этих посылок кратны между собой.
~0.44 , ~0.88, ~ 1.2 , ~ 2.7 на самом деле это T, 2*T, 3*T и 6*T.
Тогда самую маленькую длительность можно представить как бит, и тогда вся команда представима как несколько байт, что значительно сэкономит память.
По перепаду запускать таймер с периодом 0.44 мс (или проще - 0.22 мс) в котором считывать очередной бит посылки.
Первый стартовый байт должен быть 0b000000 (~2,7 мc). окончание посылки характеризуется завершающим байтом 0b11111111 как начало 82 мс периода верхнего уровня.
Все что между ними - это команда. Нужно лишь составить список.
Если бывает 39 импульсов, то даже если они будут максимально широкими в 3 бита, то максимальный размер требуемого буфера 17 байт вместе с окантовкой.