честно шлворя, я вас не понимаю. Если мы пытаемся понять, как управлять выходом таймера 3 - для чего вы в коде упорно держите столько мусора? - другие таймеры, какие-то прерывания...
Добейтесь сначала, чтобы один таймер работал, потом добавляйте остальное
Я честно говоря с утра сижу ищу такие темы, но ничего толкового не нашел, время требуется же на сброс счетчика и переключение порта, просто не понятны рамки выставления минимального лимита для текущего делителя
Вы же давно в этой теме, меня очень интересует вопрос, увеличение частоты ведет к уменьшению помехоустойчивости, нигде не нашел ответа на данный вопрос?
питание от программатора кварц рядом с процом земля чистая и грязная разведены, так что на это не буду грешить, если бы я 220 подавал, тогда есть вероятность
другой контроллер впаял новый, картина та же
не удивительно.
Давайте еще раз с самого начала. Оставьте в коде только управление OC3A. все остальное уберите. Таймер перед настройкой выключите, регистры обнулите.
активировал и другие, остальное убрал
OC1A - 96Гц
OC0 - 15,6кГц
OC3A - 96Гц
из фьюзов только SKSEL1=1 (биты с инверсией), кварц 8МГц стоит
Подозреваю что дело скорее всего в программе, даже такой код выдает 500Гц
Осциллограф проверил генератором, все четко, у меня других предположений нет
из фьюзов только SKSEL1=1 (биты с инверсией), кварц 8МГц стоит
для работы от кварца 8 МГц согласно даташиту все биты SKSEL должны быть сброшены в инверсной нотации
см таблицу 8 на стр 38
Сейчас на старой версии попробую и потом сброшу SKSEL1 в 0 не хочется доктором пользоваться выпаивать опять
попробовал старую версию и в AVRDUDE снял все галки зашил фьюзы, контроллер работает, но не изменилось ничего, я честно в недоумении
поправил значения счетчиков на 100
1 - 41,6кГц
0 - 15,6
3 - 41,6кГц
я что-то связи не вижу
запустите обычный блинк и скажите, с какой частотой мигает светодиод
импульсы 501 мГц (мили)
1 - 41,6кГц
близко к правде, должно быть 40 КГц
задержку убрал 18,5 кГц, но это понятно, долгая функция
вот я заметил такое что маленькие значения записанные в регистр и большие свыше 2000 в 16 разрядный, как-то глючат что ли
уберите все лишнее
так у меня не такой код сейчас
так у меня не такой код сейчас
ну а такой работает? что выдает7
1 и 3 ровно по 10 кГц выдают, 0 не меняется 15,6 вроде
тот код 95Гц выдает, только проверил
честно шлворя, я вас не понимаю. Если мы пытаемся понять, как управлять выходом таймера 3 - для чего вы в коде упорно держите столько мусора? - другие таймеры, какие-то прерывания...
Добейтесь сначала, чтобы один таймер работал, потом добавляйте остальное
Так вот же новый скетч создал
38кГц-41кГц прыгает
а так
33.3 кГц четко держится, может это предел?
95 Гц выдает на том что вы прислали
ну уж прыгать почти на 10% в цифровой технике оно никак не может. Код, как мне кажется, нормальный.
Ищите косяки в схеме. Либо осцил неправильно включен, либо не работает. либо кварц на атмеге неверно разведен
я все, у меня идеи кончились.
Атмеги128 у меня нет, прверить ваши измышления не на чем.
Я честно говоря с утра сижу ищу такие темы, но ничего толкового не нашел, время требуется же на сброс счетчика и переключение порта, просто не понятны рамки выставления минимального лимита для текущего делителя
а если взять другой контроллер который имеется, просто очень интересно какая картина будет
у меня вот nano есть сейчас из любопытства попробую
время требуется же на сброс счетчика и переключение порта
насколько я знаю, при аппаратном управлении выходом таймера это время равно одному такту или около того.
Кроме того, даже если это время больше - это никак не обьясняет, почему у вас на делителе 1 получается 96 Гц, а на делителе 100 - 40 КГц
давайте эксперимент, для интереса 16 мгц кварц поставлю, фьюзы только гляну
100кГц на выходе, уменьшение OCR1A начинаются скачки, то больше то меньше, это на 16 МГц
Вы же давно в этой теме, меня очень интересует вопрос, увеличение частоты ведет к уменьшению помехоустойчивости, нигде не нашел ответа на данный вопрос?
Все же, попереставлял значения 70кгц максимально, потом прыжки есть
вобщем так и получилось в 2 раза больше на этом кварце
питание от программатора кварц рядом с процом земля чистая и грязная разведены, так что на это не буду грешить, если бы я 220 подавал, тогда есть вероятность
Спасибо что потратили на меня свое время
на 328 nano так же, хотелось бы для себя эти лимиты определить когда делитель переставлять
взял обычную Нану, контроллер атмега328, кварц 16 МГц
код
на 9м пине ровно 4 МГц, как и должно быть.
Вывод - ищите косяки у себя.
Интересно, буду ковырять, спасибо за тест
запустите мой код на стандартной покупной Нано, где вы не меняли кварц и фьюзы
если на выходе не будет 4 МГц - скорее всего у вас осцил неисправен
ок, отпишусь
я этот код записал на плату меги 128 только пин 13 поставил, 4мгц ровно
завтра уже регистры сравню
я этот код записал на плату меги 128 только пин 13 поставил, 4мгц ровно
и что же изменилось? почему раньше было 96 Гц? :)
ссылку на миникоре с описанием атмеги 128 дайте, которую вы используете
регистры изначально сброшены, может в этом дело
Это мега коре https://github.com/MCUdude/MegaCore
попробовал
в этом дело
большое спасибо