Содержание материала

+---------------------------+------------------------------------------------

| Установка частоты выборки |

+===========================+

 

Для версии Sound Blaster ниже 4.00 установка частоты выборки выполняется

посылкой DSP команды 40h. При этом частота преобразуется к константе времени

по формуле:

4KHz - > 23 KHz:

Time Constant = 256 - (1,000,000 / sampling rate)

= 256 - (1,000,000 / 8,000 )

= 131

 

4KHz - > 44 KHz:

Time Constant = (MSByte of) 65536 - (256,000,000 / sampling rate)

= (MSByte of) 65536 - (256,000,000 / 44,100)

= (MSByte of) 59731

= (MSByte of) 0E953h

= 0E9h

 

void pascal RateSB

( unsigned int rate )

{

unsigned char tc;

 

if ( MaxFrequency==0 )

{

if ( rate<5000 ) rate=5000;

if ( rate>22528 ) rate=22528;

tc = (unsigned char)(256 - (1000000/rate));

}

else

{

if ( rate<5000 ) rate=5000;

if ( rate>45056 ) rate=45056;

tc = (unsigned char)(hi((unsigned int)(65536-(256000000L/rate))));

}

WriteSB(TIME_CONSTANT);

WriteSB(tc);

}

 

В отличие от этого SB16 программируется фактической частотой выборки.

Команда 41h используется для воспроизведения, а 42h используется для записи.

if ( Play==1 )

WriteSB ( 0x41 );

else WriteSB ( 0x42 );

WriteSB ( hi( frequency ) );

WriteSB ( lo( frequency ) );

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить