Для версии 7,5,2
Когда требуется на выходе получить стабильную частоту, при этом совершенно не нагружая МК:
— для ТИМ1 выбирать пин 9 или 10 — частота от 1–8 000 000 Гц;
— для ТИМ2 выбирать пин 3 или 11 — частота от 31–8 000 000 Гц.
Предельная частота будет в виде синусоиды уже.
Забирает соответствующий таймер, поэтому ШИМ и прочее на нём не заработает, если потребуется.
Можно использовать и штатный блок с любым пином, что удобно, но это просаживает чистовой код до 140к (если в мс) или, что ещё хуже, до 76к (если мкс выбраны).
И, как уже понятно, если луп крутится в 76к, то и частота на выходе будет не выше 35к, притом весьма нестабильная.
Если сюда добавить кучу блоков, то генерация и вовсе будет похожа на какую-то хрень.
Использовать, когда нужна стабильная частота, — тут без вариантов берём и ставим; либо, когда не важно, но есть свободный таймер, то можно немного ускорить код, разгрузив его.
Из нюансов на будущее: чего стоит ожидать? Это стабильность выхода, которая зависит от стабильности кварца.
У меня на «Нано» керамика, поэтому при 1000 Гц он выдаёт 999,5 Гц, или 31 Гц выдаёт 30,99 Гц.
Если на «Про Мини» загрузить, где стоит нормальный кварц, то при 1000 Гц выдаёт 999,96 Гц, а при 31 Гц выдаёт 31,001 Гц.
Аппаратный генератор для 328/168 на внешний пин 1-8000000гц
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
-
lfgjikjjyj
- Лейтенант
- Сообщения: 409
- Зарегистрирован: 27 мар 2025, 12:13
- Имя: Коля
- Поблагодарили: 142 раза
Аппаратный генератор для 328/168 на внешний пин 1-8000000гц
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
lfgjikjjyj
- Лейтенант
- Сообщения: 409
- Зарегистрирован: 27 мар 2025, 12:13
- Имя: Коля
- Поблагодарили: 142 раза
Re: Аппаратный генератор для 328/168 на внешний пин 1-8000000гц
заменил блоки теперь все 4 пина генерируют
Из нюансов ещё :
Конкретную частоту не всегда получится выставить, особенно на высоких числах.
К примеру, поставить 950 кГц не получится: он выдаст 1 МГц, исходя из формулы и округления в целое число.
То есть выбор у него либо 888 888 Гц, либо 1 МГц, но так как 950 кГц ближе к последнему, он выбирает его.
Но эта проблематика там повсюду: взять тот же I2C выбрать что хочу не получится есть градации — переход со 100 на 400 даёт заметное ускорение, далее — уже не очень, притом что и на 500, и на 615 кГц дисплей прекрасно работает, а вот на 727 начинает моргать подсветка, а на 800 больше ничего не выводит, хотя, если понизить резисторы, то, возможно, и на 800 заработает.
Из нюансов ещё :
Конкретную частоту не всегда получится выставить, особенно на высоких числах.
К примеру, поставить 950 кГц не получится: он выдаст 1 МГц, исходя из формулы и округления в целое число.
То есть выбор у него либо 888 888 Гц, либо 1 МГц, но так как 950 кГц ближе к последнему, он выбирает его.
Но эта проблематика там повсюду: взять тот же I2C выбрать что хочу не получится есть градации — переход со 100 на 400 даёт заметное ускорение, далее — уже не очень, притом что и на 500, и на 615 кГц дисплей прекрасно работает, а вот на 727 начинает моргать подсветка, а на 800 больше ничего не выводит, хотя, если понизить резисторы, то, возможно, и на 800 заработает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- DerAlex
- Лейтенант
- Сообщения: 509
- Зарегистрирован: 06 сен 2015, 08:39
- Откуда: Новосибирск
- Благодарил (а): 5 раз
- Поблагодарили: 23 раза
Re: Аппаратный генератор для 328/168 на внешний пин 1-8000000гц
Как частоту задавать ? Входов для частоты нет ? В коде каждый раз менять ?
аврора
- DerAlex
- Лейтенант
- Сообщения: 509
- Зарегистрирован: 06 сен 2015, 08:39
- Откуда: Новосибирск
- Благодарил (а): 5 раз
- Поблагодарили: 23 раза
Re: Аппаратный генератор для 328/168 на внешний пин 1-8000000гц
Было бы интересно если он внешнего потенциометра частоту можно было менять
аврора
-
lfgjikjjyj
- Лейтенант
- Сообщения: 409
- Зарегистрирован: 27 мар 2025, 12:13
- Имя: Коля
- Поблагодарили: 142 раза
Re: Аппаратный генератор для 328/168 на внешний пин 1-8000000гц
Так там и не предполагался вход
Там всё завязано на функциях и они слишком тяжёлые чтобы их каждый раз вызывать в цикле лупа Ладно там ещё одно парочка прерываний на одну выставление частот А если там начнётся дребезг контакта
А вот для сетапа там без разницы он всё выставить что надо и дальше уже просто ведёт чистый луп без какого-либо влияния
Для входов нужно делать на раздельных пинах блоки чтобы как можно по максимуму облегчить функцию вызова для кода
Там всё завязано на функциях и они слишком тяжёлые чтобы их каждый раз вызывать в цикле лупа Ладно там ещё одно парочка прерываний на одну выставление частот А если там начнётся дребезг контакта
А вот для сетапа там без разницы он всё выставить что надо и дальше уже просто ведёт чистый луп без какого-либо влияния
Для входов нужно делать на раздельных пинах блоки чтобы как можно по максимуму облегчить функцию вызова для кода
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость