О, отличная тема, я тоже никак не мог въехать в BAM. Давайте я расскажу, как я понял, а вы меня проверите.
Итак, период состоит из 256 равных элементарных интервалов. Пускай для определенности это будет 1 мкс. У нас есть N переменных, в которых хранится яркость каналов в двоичном коде.
Как я понял, обрабатывается это так:
1. Происходит прерывание. Проверяем N переменных на предмет того, стоит ли
нулевой бит. Если стоит - зажигаем соответствующий канал, если не стоит - тушим. Ждем
1 мкс.
2. Происходит прерывание (через 1 мкс). Проверяем N переменных на предмет того, стоит ли
первый бит. Если стоит - зажигаем соответствующий канал, если не стоит - тушим. Ждем
2 мкс.
3. Происходит прерывание (через 2 мкс). Проверяем N переменных на предмет того, стоит ли
второй бит. Если стоит - зажигаем соответствующий канал, если не стоит - тушим. Ждем
4 мкс.
...
...
7. Происходит прерывание (через 32 мкс). Проверяем N переменных на предмет того, стоит ли
шестой бит. Если стоит - зажигаем соответствующий канал, если не стоит - тушим. Ждем
64 мкс.
8. Происходит прерывание (через 64 мкс). Проверяем N переменных на предмет того, стоит ли
седьмой бит. Если стоит - зажигаем соответствующий канал, если не стоит - тушим. Ждем
128 мкс.
После этого начинаем с п. 1.
Верно?
Разница между теорией и практикой на практике гораздо больше, чем в теории.