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

1. Установить обработчик прерывания от звуковой платы (и разрешить его в контроллере прерываний).

2. Выполнить команду 40h или другим образом установить частоту оцифровки.

3. Выполнить команду ODlh (включить динамик).

4. Настроить DMA (режим 48h + номер канала).

5. Выполнить команду 14h. Аргументы LO и HI - это младший и старший байты длины проигрываемого участка минус один.

6. Из обработчика прерывания подтвердить его чтением порта 22Е h и посылкой байта 20h в соответствующий контроллер прерываний.

7. Выполнить команду 0D3h (выключить динамик).

На платах, начиная с SB16, для этого режима рекомендуется пользоваться командами 0C?h.

16h, LO, HI: прямое воспроизведение 2-битного ADPCM через DMA (SB). Начинает процесс воспроизведения данных аналогично команде 14h, но они должны храниться в сжатом формате Creative ADPCM 2 bit. Длина, указываемая в качестве аргументов этой команды, равна (число_6айтов + 2)/4. В качестве нулевого байта в процедуре распаковки ADPCM используется значение, которое применялось последней командой 17h. В остальном процедура воспроизведения аналогична команде 1 Ah.

17h, LO, HI: прямое воспроизведение 2-битного ADPCM через DMA с новым нулевым бантом (SB).

То же самое, что и 16h, но первый байт из данных будет рассматриваться как нулевой байт для процедуры распаковки ADPCM.

1Ch: воспроизведение 8-битного PСМ через DMA с автоинициализацией (SB2) Начинает режим воспроизведения с автоинициализацией - лучший из режимов, предлагаемых звуковыми платами. В этом режиме DSP воспроизводит в цикле содержимое указанного участка памяти, мгновенно возвращаясь на начало, пока он не будет остановлен командой 0DAh или новой командой воспроизведения через DMA. Весь секрет заключается в том, что плата генерирует прерывание не только при достижении конца блока, но и при достижении его середины. Таким образом, пока DSP проигрывает вторую половину буфера, мы можем прочитать следующие несколько килобайтов в первую половину, не останавливая воспроизведение ни на миг:

Установить обработчик прерывания звуковой платы и разрешить его в

контроллере прерываний.

2. Выполнить команду 40h или другим образом установить частоту оцифровки.

3. Выполнить команду 48h (установить размер DMA-буфера - (число байтов +

1)/2 - 1).

4. Выполнить команду 0Dlh (включить динамик).

5. Настроить DMA (режим 58h + номер канала).

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

7. В обработчике прерывания: заполнить следующую половину буфера.

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

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

9. Подождать, пока не будут воспроизведены все данные.

10. Выполнить команду 0D3h (выключить динамик).

11. Выполнить команду 0D0h (остановить 8-битную DMA-передачу).

12. Выполнить команду 0DAh (завершить режим автоннициалиэации).

13. Выполнить команду 0D0h (остановить 8-битную DMA-передачу).

На платах, начиная с SB16, для этого режима рекомендуется пользоваться командами 0С? h.

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