AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
04.02.2013, 16:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
avr вывод звука
Ну, добрался до изучения этого вопроса, пока в теории. Ряд вопросов.
первый - вывод звука из wav лежащей на флеш.
Правильно я представляю себе алгоритм?
Два небольших буфера uint8_t[16 например]
Заполняем первый буфер, отдаем на проигрывание.
проигрывание - в таймере, частота которого соответствует частоте дискретизации wav-файла. Ну или более быстром с пересчетом/проверками что "пора проиграть байт". Проигрываем байт из буфера, если дошли до половины например - даем команду на заполнение второго буфера, если дошли до конца - меняем указатель на второй буфер, и так в цикле.
Проигрывание установкой OCR, аппаратный шим. Как я понимаю - соседний таймер fast pwm. Его инициализируем вначале и тушим в конце.
Верно я себе представляю процесс?
Реализация атмега16/32L, на 8 мгц.
Второй вопрос по железу. Как я понимаю, пин ШИМа должен смотреть в усилитель. Какой усилитель подойдет? Только НЧ например на каких нить TDA или с предварительным надо?
|
|
|
|
04.02.2013, 16:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: avr вывод звука
Качества не нужно, просто мобильная обьявлялка. Нагрузка - НЧ динамик от старого кассетного магнитохфона) 4 ома, 5-20 китайских ватт)
|
|
|
|
04.02.2013, 16:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: avr вывод звука
Или.. нужен все таки один таймер с частотой дискретизации wav файла? В нем и менять OCR, и рулить флагами на буфер? Тогда в настройках таймера мы включаем аппаратный пин и прерывание, внутри которого это и делаем? И таймер один используется?
|
|
|
|
04.02.2013, 16:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: avr вывод звука
|
|
|
|
04.02.2013, 16:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: avr вывод звука
omercury, приветствую, спасибо - буду изучать!
Но мне лучше запоминается когда сам, по шагам, с пониманием процесса
Правильно я размышляю?
Мы берем за основу:
- wave файлы дискретизацией 11025. Там еще надо разбираться с RIFF-структурой и не просто читать/пихать файл, а выбирать данные из блоков?
- Таймер0 атмеги 16L
- F_CPU 7 372 800 (для уарта)
Мы заводим таймер с делителем 64 в режиме CTC, что дает частоту срабатывания 115200. 115200/11025= 10.4, то есть каждый десятый проход мы должны изменить состояние ШИМ на нужное нам. ШИМ заведен в таймере T2 fast_pwm на нужный пин. Частота этого таймера должна совпадать с частотой читаемого wav-файла или чем выше, тем выше качество? Ну так как во внимание берем слышимый диапазон - видимо должна быть близка. Что не очень укладывается в наши настройки с F_CPU..
Туплю чего то..
|
|
|
|
04.02.2013, 16:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: avr вывод звука
в общем, соберу железку - буду мучать код чана.. там дохрена всего разобрать надо
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:59.
|
|