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

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

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

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

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

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

Цифровые сигнальные процессоры Вопросы, связанные с применением цифровых сигнальных процессоров: программирование, отладочные средства, алгоритмы...

Закрытая тема
Опции темы
Непрочитано 11.07.2008, 12:53   #11
konstsm
Частый гость
 
Регистрация: 09.05.2007
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
konstsm на пути к лучшему
По умолчанию

[quote="andybeg"]
time = 65535UL - (int)(11719/(iFreq)) ;
TCNT1H = (unsigned char)(time ›› ;
TCNT1L = (unsigned char)time;

пожалуста, подробнее
Реклама:
konstsm вне форума  
Непрочитано 11.07.2008, 12:59   #12
dealex77
Прохожий
 
Регистрация: 21.06.2006
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
dealex77 на пути к лучшему
По умолчанию

Сообщение от andybeg
может чего не понял, но разве нельзя бонально организовать новую частоту по таймеру? и через
time = 65535UL - (int)(11719/(iFreq)) ;
TCNT1H = (unsigned char)(time ›› ;
TCNT1L = (unsigned char)time;
отмерять нужные интервалы?
Вы забываете, что (11719/(iFreq) - деление с отбросом дробной части.
Пусть надо 120Гц
(11719/(120) = 97,658(3) = 97
65535 - 97 = 65438 = 0xFF8A
TCNT1H = 0xFF
TCNT1L = 0x9E

Пересчитаем назад:
iFreq = 11719/(65535UL -time) = 11719/(65535-6543=
11719/97 = 120,81 Гц - то, что будет реально на ножке МК.
dealex77 вне форума  
Непрочитано 11.07.2008, 13:03   #13
andybeg
Прохожий
 
Регистрация: 27.10.2006
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
andybeg на пути к лучшему
По умолчанию

недавно реализовал задачу генератора частоты - нужно было гнать частоту от единиц до десятков килогерц ...
кварц 12Кгц ставлю делитель частоты чтобы было 11719, настраиваю чтобы таймер срабатывал по прерыванию и в прерывании выдаю импульсы нужной мне длины рассчитывая время прерывания по уже приведённой формуле
time = 65535UL - (int)(11719/(iFreq)) ;
TCNT1H = (unsigned char)(time);
TCNT1L = (unsigned char)time;
iFreq - требуемая частота
чес говоря до конца небыл уверен в правильности всего этого, но вроди бы корректно работает
andybeg вне форума  
Непрочитано 11.07.2008, 13:07   #14
andybeg
Прохожий
 
Регистрация: 27.10.2006
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
andybeg на пути к лучшему
По умолчанию

2dealex77
выбор делителя частоты поменьше разве не спасёт ситуацию ... в моём случае такого достаточно
andybeg вне форума  
Непрочитано 11.07.2008, 13:39   #15
konstsm
Частый гость
 
Регистрация: 09.05.2007
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
konstsm на пути к лучшему
По умолчанию

опишу методы выставления частоты приведенные в этой теме.
1. мой
задаю число в компараторе которое равно как раз (Fосн/делитель)/(iFreq),где iFreq - желаемая частота.
(16*10^6/8 )/(15000)=133,(3)
реальная чатоста выходит:
(16*10^6/8 )/133 = 15037,59 != 15000

2. предложенный andybeg и dealex77
то же самое, различие в том что необходимо тратить время МК на выставление нового значения в регистр таймера (лишняя команда), кстати в МК TI приоритет по переполнению гораздо ниже, чем прерывание по компаратору, это о чем то говорит.

3. предложенния по смене резонатора
конечно хорошо просто выпаять и вставить новый, но это грозит меньшей частотой работы самого микроконтроллера, возможным расхождением других частот, увелиивается вероятность налоожения подпрограмм прерывания и т.д. (можно предложить алгоритм пайки, замены старого на новый )))))

необходимы оптимальные алгоритмы изменения частоты при выполнении кода программы таким образом, чтобы частота была как можно точнее, а код программы меньше.
konstsm вне форума  
Непрочитано 11.07.2008, 16:27   #16
andruha-d
Временная регистрация
 
Регистрация: 09.11.2007
Сообщений: 56
Сказал спасибо: 12
Сказали Спасибо 10 раз(а) в 6 сообщении(ях)
andruha-d на пути к лучшему
По умолчанию

А что ты с этой частотой будешь делать в конце концов? Действительно, тупым делением задающей частоты процессора ты нужной частоты с нужной точностью не добъешься, если тебе без сдвига фазы нужно. Но некоторые такты можно сделать чуть короче/длиннее и тогда точность будет высокой. Но со сдвигом фазы.
andruha-d вне форума  
Непрочитано 13.07.2008, 07:19   #17
konstsm
Частый гость
 
Регистрация: 09.05.2007
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
konstsm на пути к лучшему
По умолчанию

сдалать приемник модема и передатчик, основанный на относительнофазовой модуляции.
Алгоритм дешифрации сигнала читайте в книгах, если интересно, здесь тема о точной частоте.
сдвиг фазы так же не нужен, пробовал, куча ошибок при при еме пакета.
konstsm вне форума  
Непрочитано 13.07.2008, 11:33   #18
smg123
Гражданин KAZUS.RU
 
Регистрация: 13.07.2005
Сообщений: 602
Сказал спасибо: 14
Сказали Спасибо 40 раз(а) в 19 сообщении(ях)
smg123 на пути к лучшему
По умолчанию

Сообщение от konstsm
сдалать приемник модема и передатчик, основанный на относительнофазовой модуляции.
Так выберите частоту несущей, кратную делению на целое число от тактовой МП так, чтобы было удобно манипулировать фазой.
smg123 вне форума  
Непрочитано 13.07.2008, 16:14   #19
konstsm
Частый гость
 
Регистрация: 09.05.2007
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
konstsm на пути к лучшему
По умолчанию

так вопрос стоит таким образом
как сделать программно точную частоту!?
всё остальное неприемлемые советы, типа "измени мир под эту частоту".
konstsm вне форума  
Непрочитано 14.07.2008, 07:29   #20
pinco
Гражданин KAZUS.RU
 
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию

Да ладно ,konstsm , не спеши "менять мир" , все гораздо проще для AVR такое сделать просто , как два пальца обосс... ) - 1.Купи ПРАВИЛЬНЫЙ кварц - на 6 Мгц продаетсяч свободно , на 12 Мгц , на 18 Мгц - какой понравится такой и используй .
2.сами таймеры можно грузить значениями 16 битными , это делители от 1 любой до65536 , на 12 Мгц к примеру 65536 дает до 183,1054688 Гц макс медленную вых частоту на одном можно получить ,причем с точностью +/- один-два такта ОТ 12 МЕГАГЕРЦ (!!!)- потому что таймеры там аппаратные и есть при конфигурпровании возможность задать режим СТС с самозагрузкой , аппаратной тоже ,после срабатывания ,так что прога для его загрузки не нужна , так вот , берем один таймер , грузим в него значение 800 для 12 Мгц , которое будет по срабатыванию его давать на тоже аппаратно подключенном выводе выхода (в о время начальной конфигурации контроллера) частоту 15,00000 Кгц - уж это ну прямо с большим кайфом удовлетворит твоим запросам точности в +/-2 гц , частота никуда гулять не будет поскольку как сам таймер так и вывод импульсов от него аппаратный , а не через прогу, прога только вначале задает конфигурацию и прочие рабочие примочки ,а дальше в работе аппаратного таймера не участвует ,и остальная прога для управления внешними компонентами от контроллера на работу аппаратного таймера тоже не влияет , надеюсь в подробностях дальше тебе не составит трудности написать нужную прогу , хоть на асме , хоть на Си .
pinco вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программная оболочка AvrOsp|| mollex Микроконтроллеры, АЦП, память и т.д 4 21.12.2009 15:33
Программная регулировка громкости LSergM Аудиотехника 10 11.07.2009 00:16
Частота в PIC контролерах bobdenis Микроконтроллеры, АЦП, память и т.д 3 29.01.2007 13:03
[Решено] частота радара(ГАИ) sergey Делимся опытом 6 26.08.2005 13:39
Тактовая частота в PIC16F84 Jerry86 Микроконтроллеры, АЦП, память и т.д 5 02.02.2005 21:34


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


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