Цитата(ogk @ Jan 8 2008, 13:01)

В программе (ПРИМЕР из интернета) нота кодируется одним байтом. 3 младших бита задают длительность, 5 бит- высоту тона. В подпрограмме декодирования ноты имеется
retlw D'252' ; 00000DDD= СИ 1 октавы (494 ГЦ).
retlw D'238' ; 00001DDD= ДО 2 октавы (524 ГЦ).
и т. д.
Откуда берут эти десятичные числа: 252 и 238? Ведь в двоичном коде это 11111100 и 11101110 соответственно. Или эти числа зависят от конкретного алгоритма? Как их вычислять? И если можно, подскажите алгоритм воспроизведения мелодии и кодировки нот.
Декодирование длительности тоже непонятно:
retlw D'8' ; HHHHH000= 1/8
retlw D'16' ; HHHHH001= 1/4
Спасибо всем, кто поможет разобраться.
Видимо, в соответствии с номером ноты из таблицы выбирается код, соответствующий периоду (или полупериоду) частоты данной ноты, в данном случае выраженному в тактах опорной частоты, подаваемой на вход счетчика, задающего частоту ноты. Аналогично с длительностью - она тоже выражена в тактах счетчика, задающего длительность звучания ноты.
А вообще недурно бы давать ссылку или более внятно формулировать вопрос (в данном случае контекст абсолютно неясен, поэтому никто и не отвечает...)
Тем не менее - успехов.
"Регистрируй, наблюдай, экономь микросекунду, зря вопрос не задавай, не запоминай ерунду" (с) не помню, чье