ZX Pilot
#42
09 декабря 2005 |
|
Coding - как использовать компьютер для борьбы с комарами (программа отпугивающая комаров).
C O D I N G ────────────────────────────────────────── (С) Иван Рощин Скажи вампирам "Нет"! ═════════════════════ Вентилятор нужен, чтобы засасывать комаров через дисковод. Народная мудрость. Да-да, речь пойдет именно о том, как использовать компьютер для борьбы с этими кровососущими тварями, - правда, не таким жестоким способом, как в эпиграфе. :) Прочитал я недавно интересную заметку [1] о том, как одна музыкальная радиостанция добавляет в свои трансляции звуковой сигнал, отпугивающий комаров. Там упоминалось, что частота этого сигнала 12,3 КГц. И я решил попробовать сформировать подобный сигнал с помощью своего ZX Spectrum. Вот первый вариант процедуры: сигнал воспроизводится через встроенный динамик. ;При тактовой частоте процессора 3,5 МГц ;один период составит ;3,5*10^6/12,3*10^3 ;~= 285 тактов (точное ;значение 284,55). ;Пусть продолжительность одного ;полупериода будет 142 такта, ;а другого - ;143. DI M1 LD B,8 ;7 ┐ DJNZ $ ;7*13+8=99 │ INC HL ;6 ├ 130+12=142 LD A,16 ;7 │ OUT (254),A ;11 ┘ LD B,9 ;7 ┐ DJNZ $ ;8*13+8=112 │ INC HL ;6 ├ 143 LD A,0 ;7 │ OUT (254),A ;11 ┘ JR M1 ;12 А вот второй вариант: для формирования сигнала используется музыкальный сопроцессор. CHAN EQU 0 ;Исполь. канал:0-A, 1-B, 2-C. VOL EQU 15 ;Громкость (0-15). LD HL,#FFBF LD C,#FD ;При тактовой частоте сопроцессора 1,75 ;Мгц значение делителя частоты тона должно ;быть равным 1,75*10^6/(12,3*10^3*16) ~= 9 ;(точное значение 8,89). Выводим его в ;регистры частоты тона: LD B,H LD A,CHAN*2 OUT (C),A LD B,L LD A,9 OUT (C),A LD B,H LD A,CHAN*2+1 OUT (C),A LD B,L XOR A OUT (C),A ;Включаем вывод частоты тона: LD B,H LD A,7 OUT (C),A LD B,L LD A,#FF RES CHAN,A OUT (C),A ;Установка громкости: LD B,H LD A,8+CHAN OUT (C),A LD B,L LD A,VOL OUT (C),A RET Так как музыкальный сопроцессор работает независимо от основного процессора, то, выполнив эту процедуру, можно в дальнейшем работать с программами, не обращающимися к сопроцессору, и звук не будет прерван. Обе процедуры формируют сигнал простейшей прямоугольной формы. Но форма оригинального сигнала много сложнее: как упоминается в [1], он занимает 1 Мб в формате Real Audio. Поэтому полезный эффект от использования этих процедур может оказаться ниже ожидаемого. Интересно было бы, если бы кто-то поделился своими результатами: помогает или нет? Fido : 2:5020/689.53 ZXNet : 500:95/462.53 E-mail: asder_ffc@softhome.net WWW : http://www.ivr.da.ru
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября