Множитель/делитель на микроконтроллере
-
Perevozchik707
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Ср фев 02, 2011 20:02:40
Множитель/делитель на микроконтроллере
Всем привет.
Вопрос в следующем. Есть прямоугольные импульсы на входе. На выходе нужно получить импульсы по количеству на 1,25 меньше чем на входе. Проще говоря нужен делитель частоты с дробным коэффициентом. Можно ли сделать такой на контроллёре или может есть какие нибудь микросхемы делители которые смогут помочь в решении этого вопроса? Пример: есть 50 импульсов, на выходе надо 40. Есть 100 импульсов, на выходе надо 80... И т.д.
Заранее спасибо за ответы.
Вопрос в следующем. Есть прямоугольные импульсы на входе. На выходе нужно получить импульсы по количеству на 1,25 меньше чем на входе. Проще говоря нужен делитель частоты с дробным коэффициентом. Можно ли сделать такой на контроллёре или может есть какие нибудь микросхемы делители которые смогут помочь в решении этого вопроса? Пример: есть 50 импульсов, на выходе надо 40. Есть 100 импульсов, на выходе надо 80... И т.д.
Заранее спасибо за ответы.
Re: Как сделать делитель на контроллёре.
Первое что приходит в голову - это PLL.
Хотя всё зависит от частоты. Если частота не очень велика, и требования по точности не очень велики, то можно и на микроконтроллере попробовать.
Хотя всё зависит от частоты. Если частота не очень велика, и требования по точности не очень велики, то можно и на микроконтроллере попробовать.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
-
Perevozchik707
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Ср фев 02, 2011 20:02:40
Re: Как сделать делитель на контроллёре.
На сколько я понимаю... Это фазовая подстройка? Мне кажется это слишком сложно круто для такой задачи....
Re: Как сделать делитель на контроллёре.
Зависит от частоты. У вас какой диапазон частот на входе?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: Как сделать делитель на контроллёре.
Тут микроконтроллер нужен как рыбе велосипед.
И не на 1,25, а в 1,25 раза уменьшить частоту.
И не на 1,25, а в 1,25 раза уменьшить частоту.
- К@Т
- Говорящий с текстолитом
- Сообщения: 1573
- Зарегистрирован: Сб окт 09, 2010 12:33:48
- Откуда: Незалежная
Re: Как сделать делитель на контроллёре.
Jack_A писал(а):Тут микроконтроллер нужен как рыбе велосипед.И не на 1,25, а в 1,25 раза уменьшить частоту
Как называетса то что Вы курили и где достать?
У кошки 4 ноги и хвост-плюс,минус,вход,выход,а хвост-земля.....Надо переходить с китайской бурды на канифоль.......[url=http://infobar.hsdn.org/][img]http://static.hsdn.org/infobar/350x60.gif[/img][/url]
Re: Как сделать делитель на контроллёре.
Т.е. на каждые 5 входных импульсов схема должна генерировать 4 выходных. Может это попробуете, предварительно заложив в исходникеPerevozchik707 писал(а): ...Можно ли сделать такой на контроллёре... Пример: есть 50 импульсов, на выходе надо 40. Есть 100 импульсов, на выходе надо 80...
Код: Выделить всё
CONST_M_N:
.DB 4,5 ;M=4,N=5
; .DB 12,13 ;M=12,N=13viewtopic.php?p=658124#p658124
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Как сделать делитель на контроллёре.
По фазе и пр. требований нет? Частоты какие? Скважность постоянная?
- Panda_Y2K
- Грызет канифоль
- Сообщения: 258
- Зарегистрирован: Пт сен 23, 2011 06:44:41
- Откуда: ЮФО
- Контактная информация:
Re: Как сделать делитель на контроллёре.
akl писал(а):Т.е. на каждые 5 входных импульсов схема должна генерировать 4 выходных. Может это попробуете, предварительно заложив в исходникеPerevozchik707 писал(а): ...Можно ли сделать такой на контроллёре... Пример: есть 50 импульсов, на выходе надо 40. Есть 100 импульсов, на выходе надо 80...Код: Выделить всё
CONST_M_N:
.DB 4,5 ;M=4,N=5
; .DB 12,13 ;M=12,N=13
viewtopic.php?p=658124#p658124
Неееее так не пойдет. А если пришло 4 импульса или 3 на выходе не должна же быть пустота...
Тут таймер надо использовать, измерять период и генерировать свою последовательность синхронно с входной.
Купи два беляша и собери из них кошку
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
- КРАМ
- Друг Кота
- Сообщения: 25151
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Как сделать делитель на контроллёре.
Panda_Y2K писал(а):Тут таймер надо использовать, измерять период и генерировать свою последовательность синхронно с входной.
Что Вы понимаете под термином СИНХРОННО?
Разные нецельнократные частоты не могут быть синхронны по определению...
Решается задача ЭЛЕМЕНТАРНО.
Два независимых процесса, которые объединяет ОДНА переменная. Первый процесс создает ее значение (для него это функция). Второму процессу переменная приходится аргументом.
Т.е. делаем обычный периодомер с усреднением (длина буфера фильтра КИХ уточняется по потребности).
Далее делим период на 1,25 и присваиваем полученное значение нашей переменной.
В ЭТО ЖЕ САМОЕ ВРЕМЯ, совершенно асинхронно, второй процесс генерирует выходной период величиной в эту самую переменную.
Вот и вся проблема.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Как сделать делитель на контроллёре.
От ТС ни слова не прозвучало по поводу частоты.
Его фраза была
По этому, судя по словам ТС, ему смело можно предлагать вариант с подсчётом кол-ва импульсов и пропуском ненужных.
ТС не указал ни диапазон чаастот, не сказал нужно ли сохранять скважность на выходе, не уточнил максимальное время отклика выходного сигнала на входной, и т.д.... Просто, тупо, спросил - "Можно поделить ?".
Его фраза была
.На выходе нужно получить импульсы по количеству на 1,25 меньше чем на входе.
По этому, судя по словам ТС, ему смело можно предлагать вариант с подсчётом кол-ва импульсов и пропуском ненужных.
ТС не указал ни диапазон чаастот, не сказал нужно ли сохранять скважность на выходе, не уточнил максимальное время отклика выходного сигнала на входной, и т.д.... Просто, тупо, спросил - "Можно поделить ?".
Re: Как сделать делитель на контроллёре.
От ТС ни слова не прозвучало по поводу частоты.
А ТС здесь и не нужен. Только мешать будет.
Re: Как сделать делитель на контроллёре.
К@Т писал(а):Jack_A писал(а):Тут микроконтроллер нужен как рыбе велосипед.
Как называетса то что Вы курили и где достать?
Называется "Справочник по цифровым микросхемам". Достать можно в любой библиотеке. Если до библиотеки по тундре на оленях далеко, можно взять простейший симулятор - хоть WB, хоть любимый многими Противнус - и убедиться, что если блокировать каждый 5-й импульс, то это и будет деление числа импульсов на 1.25
-
Perevozchik707
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Ср фев 02, 2011 20:02:40
Re: Как сделать делитель на контроллёре.
На работе был...
1) Действительно я ошибся написав на 1,25 меньше, конечно В 1,25 раза меньше....
2) Частота импульсов будет варьироваться от 0 до 400Гц
Что бы проще понять обьясню, для чего это нужно: Тюненгуется мотор. Установлен компьютер управления мотором позволяющий крутить его до 10000 об/мин и он крутиться до этого значения... Тахометра позволяющего поставить его на штатное место с показаниями до 10 тыс просто не бывает в природе. Были произведены замеры штатного тахометра. Так вот весь диапозон (а это до 8000 тыс об) он ложится при подачи на него 400 импульсов. При 50 импульсах показывает 1000 об... и т.д. Вот и родилась идея как бы растянуть шкалу до 10000 тыс. Графическую шкалу переделать - не проблема....
1) Действительно я ошибся написав на 1,25 меньше, конечно В 1,25 раза меньше....
2) Частота импульсов будет варьироваться от 0 до 400Гц
Что бы проще понять обьясню, для чего это нужно: Тюненгуется мотор. Установлен компьютер управления мотором позволяющий крутить его до 10000 об/мин и он крутиться до этого значения... Тахометра позволяющего поставить его на штатное место с показаниями до 10 тыс просто не бывает в природе. Были произведены замеры штатного тахометра. Так вот весь диапозон (а это до 8000 тыс об) он ложится при подачи на него 400 импульсов. При 50 импульсах показывает 1000 об... и т.д. Вот и родилась идея как бы растянуть шкалу до 10000 тыс. Графическую шкалу переделать - не проблема....
Последний раз редактировалось Perevozchik707 Вс ноя 27, 2011 15:26:11, всего редактировалось 1 раз.
Re: Как сделать делитель на контроллёре.
Вопрос вырос из этой темы? viewtopic.php?f=20&t=42091
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Как сделать делитель на контроллёре.
Так Вам, как я понял, нужно наоборот увеличить частоту. Т.е., при 8000 об/мин. , прибор должен показывать 10000 ?Вот и родилась идея как бы растянуть шкалу до 10000 тыс.
-
Perevozchik707
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Ср фев 02, 2011 20:02:40
Re: Как сделать делитель на контроллёре.
akl писал(а):Вопрос вырос из этой темы? viewtopic.php?f=20&t=42091
Чисто теоритически понимаю, что то устройство (viewtopic.php?f=20&t=42091) могло бы решить и эту задачу. Но к сажелению оно так и не заработало.( Сейчас же решаем вопрос именно по тахометру...
-
Perevozchik707
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Ср фев 02, 2011 20:02:40
Re: Как сделать делитель на контроллёре.
Аlex писал(а):Так Вам, как я понял, нужно наоборот увеличить частоту. Т.е., при 8000 об/мин. , прибор должен показывать 10000 ?Вот и родилась идея как бы растянуть шкалу до 10000 тыс.
Нет, нет. Именно уменьшить в 1,25. Ведь если 400 (а это уже конец шкалы на штатном тахометре) ещё и умножить на 1,25, то тахометр вообще тогда "завернётся" на второй круг....
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Как сделать делитель на контроллёре.
Т.е. прибор, уже при 400Гц, показывает максимум, а движок может ещё быстрее крутить ? И вы просто растянете шкалу до 1000.
-
Perevozchik707
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Ср фев 02, 2011 20:02:40
Re: Как сделать делитель на контроллёре.
Аlex Совершенно верно. Тоесть за место 8000 тыс рисуем 10000 и ужимаем шкалу. Ну это если так.... по простому написать....