Свежие обсуждения
Микроконтроллеры

Как сформировать ряд частот, Гц (33,33, 66,66, 133,33....)

1 4 6

Судя по набору частот - курсовой, специально, чтобы студент понял, что ему надо не 33,33 Гц получить, а меандр с периодом 30 mS.
Такой сигнал можно сделать без таймеров и деления (при условии отсутствия других задач). Для других частот аналогично.

 

Спец: "мелют языком"
Мелют ? Нет ,это не о вас!

 

smg123: Такой сигнал можно сделать без таймеров и деления
А никто никогда и не говорил, что нельзя

 

Да я это к тому, что применительно к МК, исходная задача выглядит "наоборот" - не делить надо тактовую частоту, а суммировать тактовые интервалы до достижения нужной длительности импульсов и пауз. Так студенту может понятней будет.

 

Каждый д.. (ой, нет) пишет, так как хочет!
Лишь бы результат удовлетворял всем условиям задачи! Способов решения - масса, и все правильные, если есть результат.

 

Vlad_Petr: А задавшего вопрос, уже третий день как нет......
Есть. Просто читаю ответы, обдумываю.
Vlad_Petr: Если не требуется привязка фазы выходного сигнала к опорной частоте, тогда можно и так.
Синхронизации с тактовым генератором не требуется. А вообще в каких устройствах такая привязка обычно нужна?

smg123: Судя по набору частот - курсовой, специально, чтобы студент понял, что ему надо не 33,33 Гц получить, а меандр с периодом 30 mS.
Про 30мс хорошая идея, так даже проще, чем Гц-ми оперировать.
smg123: суммировать тактовые интервалы до достижения нужной длительности импульсов и пауз. Так студенту может понятней будет.
Имеется ввиду - если 1МГц тактовая частота, то тактовый интервал равен 1 мкс? Это и переменную неизвестно какого типа заводить под сумму для отсчета тех-же 30мс; слишком много интервалов получается.

 

GM: Берёте 9333.3(3) Гц и делите на 28, 35, 40, 56, 70, 140, 280.
Спец: Вот я предлагаю - считать импульсы программно. Что такое, допустим, поделить на 159? Это значит - отсчитать 158 входных импульсов, ничего с ними не делая, а 159-й передать со входа на выход.
Спасибо, ну если так делить, то мне нравится

 

Tadas: Но теперь речь идет о МК, а i8080 - это МП.
Ну как-бы изначально так задал вопрос, что и способы для МП интересны были. Допустим таймеров нет или они уже заняты. Мне например сложно представить, каким образом без таймера формируют нужные задержки, если программа выполняется последовательно и на другие операции тоже надо какое-то время. В таких условиях, учитывая что тактовая частота МК далеко не ГГц, меандр на ШИМ, наверное больше похож будет.

 

urry: Прикинул на калькуляторе - требуемая погрешность - 1 процент получится на любом 16 битном таймере с входной частотой мегагерц.
Погрешность будет обусловлена лишь стабильностью тактового генератора, если скажем сформировать точно нужный интервал отсчёта таймером? А на 8-ми битном таймере какая примерно погрешность получится, просто не знаю как это посчитать в зависимости от разрядности таймера?

 

Digital: Мне например сложно представить, каким образом без таймера формируют нужные задержки, если программа выполняется последовательно и на другие операции тоже надо какое-то время.
Ну а в таком случае уже ничего не поделаешь - надо считать такты, вылизывать все программные петли, втыкать куда надо нопы, жуть