Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.08.2008, 10:53  
lulu7
Прохожий
 
Регистрация: 06.06.2006
Сообщений: 1
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
lulu7 на пути к лучшему
По умолчанию Необходима помощь в решении проблемы с выдачей звука

for hubble, посмотрите вот это
http://www.imeda.nm.ru/whothere/.
Интересно Ваше мнение.
Реклама:
lulu7 вне форума  
Непрочитано 25.08.2008, 19:50  
sbulgak
Прохожий
 
Регистрация: 24.08.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sbulgak на пути к лучшему
По умолчанию

Сообщение от hubble
Спасибо, что нашли ошибку. Но это существенно качество звучания не улучшило. Я бы сказал, что разница вообще не изменилась. А вот между тем, который был в аттаче - значительная. Может быть Вы посмотрите еще и ассемблеровский файл и сравните с моим. Ну НЕ ДОЛЖНО быть такой существенной разницы если алгоритм считывания один и тот же. Поэтому, где-то подозреваю у меня в программе что-то не так. Прослушайте оба файла. Услышите разницу - она чувствуется.
Пожалуйста. Дайте описание на ассемблер, я посмотрю.
Но визуально такое ощущение, что они друг другу не соответсвуют. Кстати тот вариант которой в папке good у меня нормально не воспроизводится, proteus 7.2SP2 выдает предупреждения чтото насчет тактовой частоты, а который bad действительно чтото хрепит. Я в proteuse профан поэтому могу только код посмотреть.
sbulgak вне форума  
Непрочитано 25.08.2008, 23:34  
hubble
Прописка
 
Регистрация: 04.08.2006
Сообщений: 139
Сказал спасибо: 12
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
hubble на пути к лучшему
По умолчанию

Сообщение от sbulgak
Дайте описание на ассемблер, я посмотрю.
В папке good там есть и hex- и asm-файлы.
Насчет воспроизведения - вот в том-то и дело, что звучит хуже, но, вообще-то, разобрать можно. Жду Вашего разбора asm-файла и сравнение с сишным.

To lulu7

Это был мой первый проект, с которым я столкнулся при проектировании звуковой программы. Я пишу на CCS, а он написан на хайтеке. У меня pic18f2520, а там pic18f252. Попробовал переделать под мой - не получилось . Начал выдввать какие-то ошибки. Разбираться с хайтеком и вникать в его работу сейчас некогда. Оставил...до лучших времен.(Но с ним нужно разобраться обязательно). Нашел другой проект. меня вполне пока устраивает. Попробовал заточить под свой микроконтроллер. Возникла проблема, описанная в начале темы.
hubble вне форума  
Непрочитано 26.08.2008, 20:34  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Не знаю ...
Качество практически одинаково фиговое - большие шумы.
Единственное что у bad замедленное воспроизведение.
Тупо поставил частоту 5 мГц -качество стало одинаковым....
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 26.08.2008, 22:38  
sbulgak
Прохожий
 
Регистрация: 24.08.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sbulgak на пути к лучшему
По умолчанию

Сообщение от hubble
Сообщение от sbulgak
Дайте описание на ассемблер, я посмотрю.
В папке good там есть и hex- и asm-файлы.
Насчет воспроизведения - вот в том-то и дело, что звучит хуже, но, вообще-то, разобрать можно. Жду Вашего разбора asm-файла и сравнение с сишным.
Я имел ввиду описание ассемблера Вашего компилятора, а не тект программы, ну да ладно. Текст на С близкий к тому что делается в ассемблерном файле находится в приаттаченном архиве. Нюансы связанные с переключением банков и взаимодействием с i2с-флашею я выкинул. Успехов.

Прикрепленный файл: 8832048.zip
sbulgak вне форума  
Непрочитано 18.09.2008, 23:02  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Если тема еще актуальна, то у меня есть наработки
urry вне форума  
Непрочитано 19.09.2008, 23:17  
hubble
Прописка
 
Регистрация: 04.08.2006
Сообщений: 139
Сказал спасибо: 12
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
hubble на пути к лучшему
По умолчанию

Тема еще актуальна.Вы можете со мной связаться по адресу habl@ukr.net или через icq 447536217
hubble вне форума  
Непрочитано 20.09.2008, 11:35  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Все грустнее. Я ццс не знаю, мне проще на асме написать. Давайте я опишу сам принцип, а напишете Вы уже сами.
1. Откуда брать wav файл с нужной частотой и разрядностью. Неро - редактор wav файлов - сохранить как... Выбираем pcm, частоту 11025, разрядность 8 бит.
Затереть кодом тишины (0х80) в сохраненном файле нужно начало и конец,где идет служебная инфа. Дальше - все зависит от того, куда Вы инфу пихать будете - если в код на си, то преобразовать файл в текст можно программой http://www.imeda.nm.ru/whothere/ отсюда. Если собираетесь заливать на какой-то носитель, то просто копируете.
2. Частота ШИМ.
Выбирается по 3 критериям
а)должна быть как можно большей
б)разрядность - 8 бит
в) в результате деления на целое число должна получиться частота квантования (например 11025).
Пример - у ссылке выше частота квантования 22050, частота клока 40 мегагерц - поэтому частота ШИМ выбирается 22050 * 7 (наше целое число ) = 154350 Герц. Для этой частоты PR2 вычисляется по формуле
1/( [PR2+1] *4* 1/40 000 000
что будет 63 с копейками. Реальная частота получится
(копейки в регистр занести не можем) 156250. Т.е. реальная частота квантования будет уже 156250/7 = 22321 Герц - вместо 22050. Ошибка в 200 Герц крамольной не является, на слух незаметно.
3. Настройки ШИМа - у тм2 есть прескалер и постскалер. В прескалер заносим 0, а в постскалер - это самое число 7. Таким образом, разрешив прерывание тм2, мы получим его с частотой 22321 Герц. В этом прерывании (не забываем, у нас 8 бит разрешения) старшие 6 бит, прочитанных из памяти, грузим в CCPR1L, а младшие 2 бита - в CCP1CON.
Например, так
Код:
// прочитанный из памяти байт находится в temp
//tmpCPP будет копироваться в CCP1CON
	TMR2IF=0;
                        tmpCPP=temp;
//копируем для младших битов 	
			tmpCCP=‹‹4;
// получили значение 2 младших битов
			tmpCCP|=12;
// в регистре CCP1CON находится режим ШИМ, мы затерли
// при сдвиге , восстановили его, приб 0хС 
			temp››=2;
// получаем старшие 6 разрядов
			CCPR1L=temp;
// копируем их в CCPR1L
			CCP1CON=tmpCCP;	
// отдаем младшие 2 разряда
4. Эта схема будет работать, но будет воспроизводиться паразитная гармоника в 5,5 килогерц.
Чтобы этого избежать, выдачу проводят в 2 раза чаще,выдавая промежуточный вариант как среднее арифметическое предыдущего и текущих значений.
Цитата от IgorV
Код:
Ресамплирование на удвоение частоты получил как B[j]= ( A[j] + A[j-1] )/2
Где А - самплы исходной частоты, B - самплы вставляемые между исходными. Используются все.
Итого удвоение частоты. Кажущаяся чушь и примитивность реально оказывается гребенчатым фильтром
для частоты в половину от исходной. Т.е. Если самплы А были для выборки 11кГц, то писк на
частоте 5.5кГц подавляется прилично. Но возникает новый на частоте 11кГц, т.к. частота выборок
стала 22кГц.
Как это будет работать - при суммировании 2 8-битовых регистров уже нужен 16 битовый , который затем сдвинем вправо на 1 разряд (деление на 2).
Теперь код от IgorV становится более понятным
Код:
		if(!phase) // первый раз сюда
		{
			super=last;
			temp= *ccptr;
			ccptr++;
			tmpCCP=(char)super‹‹4;
			tmpCCP|=SNDCCP;
			*(char*)(&super)››=2;
			CCPR1L=(char)super;
			CCP1CON=tmpCCP;
			phase =1;
			cntSnd--;
		}
		else
		{
			super=temp+last; // суперсамплинг с подавлением частоты 5.5кГц
			last=temp;
			super››=1;
			tmpCCP=(char)super‹‹4;
			tmpCCP|=SNDCCP;
			*(char*)(&super)››=2;
			
			CCPR1L=(char)super;
			CCP1CON=tmpCCP;
			phase=0;
Думаю, что уже достаточно его комментировал.
В заключенье мой проект - на 628 пике чтение с ммс карточки, частота кварца - 20 мег, частота дискретизации 16 килогерц, частота шима - 64 килогерц, постскалер, соответственно, 2, частота срабатывания таймера - 32килогерца.
В аудио в протеусе звучит ужасно, но в железе - нормально.

Прикрепленный файл: 3842953.rar
urry вне форума  
Непрочитано 08.10.2008, 14:30  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

http://www.remexpert.com/ipb/index.p...=0&#entry10837
urry вне форума  
Непрочитано 16.10.2008, 01:21  
hubble
Прописка
 
Регистрация: 04.08.2006
Сообщений: 139
Сказал спасибо: 12
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
hubble на пути к лучшему
По умолчанию

Спасибо за помощь. Пока что пришлось отложить на время проект со звуком. Но то, что уже есть - вроде бы пока достаточно. А дальше - не знаю, время покажет.
hubble вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходима схема: Велогенератор->Мобильник+Навигация Bear_krk Источники питания и свет 14 18.07.2010 14:18
Помогите пожалуйста в решении схемы найти один ток. FREKEROk Электроника - это просто 2 06.05.2009 11:27
Необходима подобная схема на микросхеме sergeichenko Поиск схем. Делимся схемами 12 11.11.2008 19:11
Необходима помощь того у кого есть "Радиоконтруктор&quo andryha26 Поиск схем. Делимся схемами 7 04.09.2006 19:08
Необходима схема OTAKE 2102MK9 (телевизор) mfriar Видеотехника 3 17.09.2005 19:10


Часовой пояс GMT +4, время: 16:03.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot