Продолжительность звучания
Продолжительность звучания
Мы можем регулировать продолжительность так, как было указано в гл. 6. Вспомним, что громкоговоритель управляется устройством, называемым "Программируемый параллельный интерфейсный контроллер 8255". Специальные каналы ввода-вывода, называемые портами, связывают этот и другие контроллеры с "мозгом" системы, микропроцессором 8088. Мы используем порт 97 для включения громкоговорителя, цикл, чтобы отмечать время, и затем порт 97 для отключения громкоговорителя. Вот фрагмент программы, которая будет выполнять эти действия:
#define TIMESCALE
1270 /* число отсчетов времени в 0,1 с */
#define BEEPPORT 97 /* порт управляет громкоговорителем */
#define ON 79 /* сигнал включения громкоговорителя */
count = TIMESCALE *time; /* преобразование времени
в единицы таймера */
port = inp(BEEPPORT); /* запоминание состояния порта */
outp(BEEPPORT, ON); /* включение громкоговорителя */
for(i = 0; i < count; i++)
; /* отметка времени */
outp(ВEEPPORT, port); /* выключение громкоговорителя, восстановление состояния */
Значение count (число отсчетов) дает время, в течение которого громкоговоритель включен. Коэффициент TIMESCALE преобразует десятые доли секунды в эквивалентное количество отсчетов времени. Конечно, мы должны установить требуемую частоту звука до того, как зазвучит громкоговоритель, поэтому рассмотрим этот параметр.