И снова о таймере
- Войдите на сайт для отправки комментариев
Пт, 11/06/2021 - 19:16
У меня вопрос:
Можно ли сделать делитель на таймере для Arduino UNO для входной частоты и поделенную частоту выдать на выход? Может кто нибудь посоветовать ссылку на проекты, где это реализовано?
Например на выв.5 подаем частоту 100кгц. Делитель делаем равным 12 и на выв.3 получаем частоту 8 кгц.
чисто теоретически - выбираем для таймера тактирование с внешнего входа, запускам режим по совпадению, в регистр сравнения пишем половину делителя (в вашем примере 8/2 = 4) и по совпадению инвертим уровень нужного выхода
Правда сомневаюсь. что Уно такое умеет
Timer/Counter2 на ATMega328 со внешним тактированием.
Вар1: В прерывании считаем фронты входной частоты и инвертируем выходной пин. При 100 килогерцах другими тяжелыми задачами не занимаемся.
Вар2: Лепим рядом счетчик на 561*/CD40*.
У первого таймера тактирование от внешнего входа -штатный режим (битыCS10..CS12) + режим CTC и вуаля.
По 1 варианту: Прерывание уже занято. Максимальная частота по измерению прерывания 250 кгц. и уже работает. Таймер 1 уже тоже занят. Остается свободным только таймер 2 или внешний счетчик (555ИЕ8 с задаваемым коэф. деления). Хочу повысить максимальную частоту для прерывания. Например на вход счетчика подаем 2500 кгц на таймере его делим на 10 и подаем на вход прерывания.
Пока делаю пробный вариант на 1 таймере СТС режим для встроенного кварца. Это вариант работает.
Вот вариант для 2 таймера вроде все тоже самое , но не работает.
Buldakov, во-первых не ясно как приведённые примеры соотносятся с задачей. В задаче надо делить внешний сигнал -а тут вы делите внутреннюю частоту тактирования. Во втором примере вы результат сравнения никуда не выводите (не активны биты Compare Match Output)
По 1 варианту: Прерывание уже занято.
Вроде с внутреннего генератора получилось. Выходной сигнал на выв.11
Теперь буду пробовать запустить таймер от внешнего генератора. Как я понял
Бит EXCLK (6) регистра ASSR разрешает использование внешнего тактового сигнала от кварцевого резонатора 32 кГц при записи в него 1.
Бит AS2 (5) регистра ASSR управляет способом тактирования (1 - от внешнего резонатора 32 кГц, подключенного к TOSC1 (9 ножка) / 0 - от внутреннего генератора CLK).
http://avrprog.blogspot.com/2013/03/t2-8.html
Вопрос решился. Входная частота подается на выв. 9. Только жалко что таймер не может делить входную частоту меньше чем в в 2 раза и время выполнения кода зависит от измеряемой частоты. Поэтому перехожу на внешний делитель с логикой и 555ИЕ8 +555ИЕ10. Частотка при этом будет измеряться от 1 гц до 20 мгц для советских счетчиков и до 80мгц для импортных. Зато радиолюбители освоят изготовление и травление печатных плат в качестве добавки к Arduino Uno. Буду делать частотомер, как проще и удобнее для себя. А если кому то будет сложно, то это не ко мне.