| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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, да. Я знаю что частота с громкостью никак не связана, но более низкая частота будет восприниматься (именно ухом) как более тихий звук, а более высокая - как громкий. |
| Автор: Exekutor 24.5.2006, 10:50 |
| Ну, как ба то нибыло, это единственный вариант. |
| Автор: e-moe 25.5.2006, 11:27 |
| Просто насколько япомню, спикер, грубо говря, подсоедиден к микросхеме теймера... Но можно уменьшить громкость аппаратно - в цепь поставить небольшой резистор, можно даже перемнный ;) |
| Автор: Akina 25.5.2006, 12:53 |
Спикер, грубо говоря, подключен к микросхеме периферии... и я полагаю, что она не будет колотиться от счастья, когда ты начнешь тыкать в нее паяловом... а впрочем, почему бы и нет? |
| Автор: Romikgy 25.5.2006, 13:27 |
| Автор: Exekutor 25.5.2006, 13:37 |
| Ага, а потом резистор будет идти в комплекте поставки программы, чтобы пользователь мог впаять его сам. |
| Автор: Romikgy 25.5.2006, 14:36 |
програмно |
| Автор: e-moe 25.5.2006, 16:05 | ||||||
Что именно вы подразумеваете под обширным понятием "периферия?" И не тыкать, а паять, и не микросхему а один из двух проводов, которые подключены к биперу(динамику). Я же написал, аппаратно:
Добавлено @ 16:11 Akina, вот, специально для вас:
Цитата из Зубкова С.В. "Assembler для DOS, Windows и Unix" М. 2004г., c.335 |
| Автор: Romikgy 25.5.2006, 16:22 |
текст мессаги 25.5.2006, 12:27 Хмм... думаю он это знает + и еще поболее того что написано ИМХО |
| Автор: e-moe 25.5.2006, 17:02 |
Не при чем, я написал альтернативное (аппаратное) решение. Отвечайте за себя. |
| Автор: Akina 25.5.2006, 17:18 |
Нудный ты мужик... слышишь звон, да не знаешь где он... выход канала 2 таймера подключается к биту 5 порта С микросхемы интерфейса с периферией (8255). Полученный с этого порта бит складывается с битом 1 порта В той же микросхемы, и полученным результатом управляется гейт-ключ, к которому подключается динамик. Не асемблерный учебник надо читать, а смотреть схемы подключения. |
| Автор: e-moe 25.5.2006, 18:45 |
| Akina, спасибо за ин-фу. Как я понял, эта 8255 всего лишь выполняет логическое И/ИЛИ (смотря какой уровень активный) над выходом таймера и первым(нумерация с нуля) битом тогоже 61H порта, который включает/выключает динамик. Т.е., как вы говорите "звон", изначально идет именно от таймера, а 8255 им только управляет... Поэтому я и говорил таймер, чтобы автору было понятно почему именно нельзя менять громкось. |
| Автор: Akina 26.5.2006, 09:24 |
8255 на него подает (или НЕ подает) напряжение. Вольтаж этого напряжения программно изменить невозможно - только есть или нет, 0 или 1. |
| Автор: e-moe 26.5.2006, 14:34 |
| ну да, я разве говорил что-то другое? |