|
dosikus: Выложил здесь Тенкс! он сразу в хекс конвертит Да видел я, конечно, эту красивую таблицу. Разве мимо такой пройдёшь? Только, в данном-то случае, конвертить-то, собственно ничего и не надо. А надо просто склеить, и создать системную область. Редактировать можно и в Волкове, по Эф4, а склеивать, как утверждают, можно досовской командой. Но редактор, безусловно посмотрю. Кто ж от хорошей штуки отказывается? Так что, тенкс, ещё раз. AHTOXA: Разве в мелодиях нет нулей Не в "мелодиях", а в "сэмплах". В том-то и дело, что - нет (я уже выше про это говорил). В той же статье Долгого, написанно, что есть, но там же и говориться, что за нулевой отсчёт принимают 80h. Теперь считаем. Сколько до максимума? 7Fh. А раз сигнал должен быть симметричным, то, для получения минимума, отнимаем это число от нулевого значения. Что получилось? Правильно - 1. Короче говоря, для симметричного сигнала, необходимо нечётное число уровней квантования. А 256 - число чётное. Предлагаю тестовый сигнал 1KHz, с уровнем 0 дебилов, длительностю 1секунда, сгенерированный в СоундФорже. не буду больше агитировать Да учёл я Ваш вариант. Будем думать. Просто, я, пока, не планирую очень часто прошивку менять. dosikus: http://www.romanblack.com/btc_alg.htm Чёй-то не открывается....
109540.raw |
|
|
Gregory: Редактировать можно и в Волкове, по Эф4, а склеивать, как утверждают, можно досовской командой. Я думаю copy, paste удобней досовских комманд.;)
|
|
|
dosikus: Только сейчас заходил Да. Сейчас открылась. Это какой же извращенец придумал на тёмном фоне чёрными буквами писАть? Ладно, сейчас, что-то всё-равно не воспринимаю. Почитаю позже. Но обратил внимание на одну вещь. Там на выходе напряжение подаётся на RC-цепь. В в/у схеме Долгого такого нет. Там к выходу прямо подключен ФНЧ в интегральном исполнении. В связи с этим несколько вопросов. Сам фильтр уже содержит эти элементы, или всё-таки их лучше дополнить? Там рекомендованы MAX7400 / MAX7403. Не нашёл ни той ни другой. Чем их можно заменить? Смотрел даташит на 7408-7411. Так и не понял, существенно ли они отличаются? Вроде везде написанно, что идеально подходят для ФНЧ ЦАПов. Их, кстати, тоже не нашёл. Может, и вообще без ФНЧ обойтись? |
|
|
Там по ссылке не ШИМ, там другой способ приближения звукового сигнала - нолики и единички определённой длительности плюс ФНЧ. Упрощённый однобитный ЦАП короче. То есть, ФНЧ используется совсем иначе, чем с ШИМ. В случае с ШИМ можно обойтись вовсе без ФНЧ, если частота ШИМ выше звуковой. Конечно, это будет не хай-энд, но -- будет |
|
|
2Gregory == ... Безусловно, если кто прояснит ситуацию, с делением на корень двеннадцатой степени из двух... ++ делить не надо, поясню своё предложение(вы не поняли) 1. имеем таблицу ЛЮБОЙ периодической функции - например синуса из 256 значений(так быстрее) 2. имеем частоту ШИМа - например =19531,25Гц 3. имеем ноту которую необходимо воспроизвести - например 440гц 4. вычисляем "шаг по таблице" для ноты 440гц =размер таблицы делить на к-во отсчётов на период для ноты. = 256(1) / 19531,25(2) * 440(3) = 5,767241 --> =0х05С4 - именно это двухбайтное(можно 3х) значение используется для вычисления по таблице - поясню. 5. считав "константу" для ноты необходимо сложить её со значением вычисленным в предыдущей выборке(19531,25) например 0000+05С4=05С4 -- где 05=адрес обсчёта в таблице в следующем отсчёте(прерывании ШИМа) 05С4+05С4=0В88 -- где 0В=адрес обсчёта в таблице далее 0В88+05С4=114С -- где 11=адрес обсчёта в таблице .... т.е. для вычисления ноты достаточно сложить два двухбайтных числа. при переполнении старшего регистра результата произойдёт переход на начало таблицы(размер 256) = новый период колебания == ... период ШИМа составит всего 255 машинных циклов. Поэтому, какие-либо сложные вычисления отпадают... ++ вам говорили что выбор не лучший - скорость мала, флеша мало, RAM мало, нет аппаратного умножения, ну и 8разрядность , но можно что-то сделать. гораздо интереснее выглядит ATMEGA8 ...и дешевле pic628, хотя от 8разрядов не избавились но если не "увлекаться" умножением... , то и на 628 можно что-то сделать
|
|
|
AHTOXA: делал ШИМ 30 КГц Да сделать-то можно, вплоть до 5 MHz. Только проблема в том, что разрядность ШИМа, при этом, упадёт до 1 бита. Плюс, за период ШИМа, необходимо проделывать кое-какие вычисления. А, при в/у частоте, этот период будет равен 1 МЦ. AnSi: то и на 628 В первом приближении, идея ясна, в смысле сам механизм. Насколько это "правильно", погляжу позже. Пока вижу некоторый изъян в том, что следующий период будет начинаться не с нуля. Поэтому есть некоторые проблемки с выключением. выбор не лучший Зато - дешёвый. |
|