Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode Three 16-bit Timer/Counters with Separate Prescaler, Compare Mode, and Capture Mode Ten PWM Channels
кто мешает в обработчик таймера добавить переменную и сбрасывать по достижении нужного значения и выполнять код?
Мне нужно не выполнять код, а выдавать аппаратным ШИМом частоту с точностью до 0.2..0.4%, соответственно на 8-битном таймере делитель нужно держать ближе к верху диапазона. Если имеются предделители только 2⁰ и 2³, это не всегда возможно.
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
watchmaker, тогда расскажи, как ты собрался аппаратным ШИМом формировать нужную тебе частоту? частоту (меандр) можно формировать таймером без применения аппаратного ШИМа. шаг 0,2% между соседними частотами на 8-битном таймере ты не получишь никогда. между числами 250 и 251 (или 249) будет, как раз, 0,4%. с уменьшением числа погрешность будет возрастать. даже если бы предделители были 1, 2, 4, 8, для любой частоты ты никогда не попадешь в конец записываемого байта. какие, конкретно, тебе нужны частоты?
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
220..1760 Гц с соотношением соседних частот 2^(1/12). Конкретное начальное значение 220 Гц не столь важно (+/- 6% не проблема), важно как можно более точное соотношение. 0.4% удаётся добиться в диапазоне делителей 128..256 подбором начального значения, а вот при выходе за этот диапазон 1% в идеале.
_________________ Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
0.4% удаётся добиться в диапазоне делителей 128..256
не надо сочинять. разница между 128 и 129 дает ошибку 1/128, то есть, около 0,8%. тебе и самому понятно, что на 8-битном таймере 8-кратное изменение частоты с желаемой точностью ты сделать не можешь. только признаться в этом не хочешь. так что, бери мегу88 и не морочь голову себе и людям.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Здравствуйте, помогите пожалуйста разобраться новичку с таймерами в atmega88p, Использую таймер 2 для шим модуляции, а таймер 0 для прерываний по переполнению, при изменение скважности шим с помощью регистра OCR2B почему то меняется время прерывания таймера 0, никак не могу понять причину, как регистр 2 таймера связан с таймером 0?
Starichok51, на самом деле нет. слишком часто будет меняться делитель частоты, да и меняться он будет всего на единицу делителя. Но это надо пробовать, что б послушал кто то с музыкальным слухом.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения