Курсовая работа: Программа воспроизведения произвольного звукового файла с использованием звукового адаптера (формат - wav)

Аналог команды 1Ch, но данные хранятся в 2-битном формате ADPCM с нулевым байтом. Длина блока рассчитывается так: длина = (число байтов + 3)/4 + 1 длина блока = (длина + 1)/2 - 1

20h: прямое чтение 8-битных данных из АЦП (SB)

Команда предназначена для чтения оцифрованного звука из внешнего источника. Используется следующая процедура:

1. Выполнить команду 20h.

2. Прочитать очередной байт.

3. Подождать необходимое время и вернуться к пункту 1

Проблемы с этой командой точно такие же, как и с 10h.

24h, LO, HI: чтение 8-битного РСМ через DMA (SB)

Аналог команды 14h, но выполняет не воспроизведение, а запись звука. Последовательность действий идентична случаю с 14h, но используемый режим DMA - 44h + номер канала.

2Ch: запись 8-бнтного РСМ через DМА с автоинициализацией (SB2) Аналог команды 1Ch, но выполняет не воспроизведении, а запись звука. Последовательность действий идентична случаю с 1Ch, но используемый режим DMA - 54h + номер канала.

30h: прямое чтение MIDI (SB)

Выполняет чтение очередного MIDI-события:

1. Выполнить команду З0h.

2. Прочитать MIDI-событие (до 64 байт).

31h: чтение MIDI с прерыванием (SB)

Включает генерацию прерывания от звуковой платы при поступлении нового

MIDI-события. Для этого необходимо:

1. Установить обработчик прерывания.

2. Выполнить команду 31h.

3. В обработчике прерывания: прочитать MIDI-событие.

4. В обработчике прерывания: подтвердить прерывание чтением из 22Eh и

записью 20h в контроллер прерываний.

5. Выполнить команду 31h еще раз, чтобы отменить генерацию прерывания.

32h: прямое чтение MIDI-события с дельта временем (SB)

Выполняет чтение очередного MJDI-события и 24-битного дельта времени, то есть времени в микросекундах, наступившего после предшествующего MIDI-события. (Считываются данные в следующем порядке: младший байт времени, средний байт времени, старший байт времени, MIDI-команда.) Именно в виде последовательности MIDI-событий, перед каждым из которых указано дельта-время, и записывается музыка в MIDI-файлах.

32h: чтение MIDI-события с дельта временем с прерыванием (SB). Включает/выключает генерацию прерываний от звуковой платы аналогично команде 31h, но при чтении MIDI-события передаются вместе с дельта временами, как в команде 32h.

34h: режим прямого доступа к UART (SB2).

Отключает DSP, после чего все команды записи/чтения в его порты (используя тот же механизм проверки готовности) рассматриваются как MIDI-события. Вывести DSP из этого режима можно только с помощью полной переинициализации.

37 h: режим прямого доступа к UART с прерыванием (SB2)

К-во Просмотров: 517
Бесплатно скачать Курсовая работа: Программа воспроизведения произвольного звукового файла с использованием звукового адаптера (формат - wav)