Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > изменение громкости pc-спикера


Автор: Xvood 21.5.2006, 16:56
собственно как реализовать на асме? 

Автор: e-moe 21.5.2006, 21:40
Думаю что програмно это невозможно. 

Автор: Exekutor 24.5.2006, 07:44
Ну, теоретически, програмно - наверное нет. Но вот эмулировать изменение громкости, думаю можно, а именно: уменьшить громкость - понизить частоту сигнала, увеличить громкость повысить частоту сигнала. Попробуй так. 

Автор: Akina 24.5.2006, 10:29
Exekutor, частота с громкостью никак не связана. Ты, видимо, ведешь речь о т.наз. кривой чувствительности уха? 

Xvood, это невозможно.  

Автор: Exekutor 24.5.2006, 10:37
Akina, да. Я знаю что частота с громкостью никак не связана, но более низкая частота будет восприниматься (именно ухом) как более тихий звук, а более высокая - как громкий. 

Автор: Akina 24.5.2006, 10:44
Цитата(Exekutor @  24.5.2006,  11:37 Найти цитируемый пост)
более низкая частота будет восприниматься (именно ухом) как более тихий звук, а более высокая - как громкий.  

Не совсем так. Наиболее громко воспринимается частота 440 герц (плюс-минус в зависимости от конкретного человека и непременно минус по мере увеличения возраста), выше и ниже - воспринимаются как более тихие. Плюс индивидуальные провалы восприятия определенных частот, как правило в результате профессионального "заболевания". 

Автор: Exekutor 24.5.2006, 10:50
Ну, как ба то нибыло, это единственный вариант. smile  

Автор: e-moe 25.5.2006, 11:27
Просто насколько япомню, спикер, грубо говря, подсоедиден к микросхеме теймера... Но можно уменьшить громкость аппаратно - в цепь поставить небольшой резистор, можно даже перемнный ;) 

Автор: Akina 25.5.2006, 12:53
Цитата(e-moe @  25.5.2006,  12:27 Найти цитируемый пост)
спикер, грубо говря, подсоедиден к микросхеме теймера

Спикер, грубо говоря, подключен к микросхеме периферии... и я полагаю, что она не будет колотиться от счастья, когда ты начнешь тыкать в нее паяловом... а впрочем, почему бы и нет? 

Автор: Romikgy 25.5.2006, 13:27
Цитата(e-moe @  25.5.2006,  10:27 Найти цитируемый пост)
поставить небольшой резистор, можно даже перемнный

 smile а при чем тут асм smile  

Автор: Exekutor 25.5.2006, 13:37
Ага, а потом резистор будет идти в комплекте поставки программы, чтобы пользователь мог впаять его сам.  smile  

Автор: Romikgy 25.5.2006, 14:36
Цитата(Exekutor @  25.5.2006,  12:37 Найти цитируемый пост)
 впаять

програмно smile  

Автор: e-moe 25.5.2006, 16:05
Цитата(Akina @  25.5.2006,  11:53 Найти цитируемый пост)

Спикер, грубо говоря, подключен к микросхеме периферии... и я полагаю, что она не будет колотиться от счастья, когда ты начнешь тыкать в нее паяловом...

Что именно вы подразумеваете под обширным понятием "периферия?"
И не тыкать, а паять, и не микросхему а один из двух проводов, которые подключены к биперу(динамику).


Цитата(Romikgy @  25.5.2006,  13:36 Найти цитируемый пост)
програмно smile   

Я же написал, аппаратно:
Цитата(e-moe @  25.5.2006,  10:27 Найти цитируемый пост)
Но можно уменьшить громкость аппаратно - в цепь поставить небольшой резистор, можно даже перемнный ;) 


Добавлено @ 16:11 
Akina, вот, специально для вас:
Код

Как сказано в разделе 5.10.2, канал 2 системного таймера
управляет динамиком компьютера - он генерирует прямоугольные
импульсы с частотой, равной....

Цитата из Зубкова С.В. "Assembler для DOS, Windows и Unix" М. 2004г., c.335  

Автор: Romikgy 25.5.2006, 16:22
Цитата(e-moe @  25.5.2006,  15:05 Найти цитируемый пост)
Я же написал, аппаратно:

текст  мессаги 25.5.2006, 12:27
Цитата(e-moe @  25.5.2006,  15:05 Найти цитируемый пост)
Akina, вот, специально для вас:

Хмм... думаю он это знает + и еще поболее того что написано
Цитата(e-moe @  25.5.2006,  15:05 Найти цитируемый пост)
Зубкова С.В. "Assembler для DOS, Windows и Unix" М. 2004г., c.335  

ИМХО 

Автор: e-moe 25.5.2006, 17:02
Цитата(Romikgy @  25.5.2006,  12:27 Найти цитируемый пост)
 smile а при чем тут асм smile   

Не при чем, я написал альтернативное (аппаратное) решение.

Цитата(Romikgy @  25.5.2006,  15:22 Найти цитируемый пост)
Хмм... думаю он это знает + и еще поболее того что написано

Отвечайте за себя. 

Автор: Akina 25.5.2006, 17:18
Цитата(e-moe @  25.5.2006,  17:05 Найти цитируемый пост)
Akina, вот, специально для вас:

Нудный ты мужик... слышишь звон, да не знаешь где он... выход канала 2 таймера подключается к биту 5 порта С микросхемы интерфейса с периферией (8255). Полученный с этого порта бит складывается с битом 1 порта В той же микросхемы, и полученным результатом управляется гейт-ключ, к которому подключается динамик. 
Не асемблерный учебник надо читать, а смотреть схемы подключения. 

Автор: e-moe 25.5.2006, 18:45
Akina, спасибо за ин-фу.
Как я понял, эта 8255 всего лишь выполняет логическое И/ИЛИ (смотря какой уровень активный) над выходом таймера и первым(нумерация с нуля) битом тогоже 61H порта, который включает/выключает динамик. Т.е., как вы говорите "звон", изначально идет именно от таймера, а 8255 им только управляет...

Поэтому я и говорил таймер, чтобы автору было понятно почему именно нельзя менять громкось.  

Автор: Akina 26.5.2006, 09:24
Цитата(e-moe @  25.5.2006,  19:45 Найти цитируемый пост)
8255 им только управляет

8255 на него подает (или НЕ подает) напряжение. Вольтаж этого напряжения программно изменить невозможно - только есть или нет, 0 или 1.  

Автор: e-moe 26.5.2006, 14:34
ну да, я разве говорил что-то другое? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)