https://www.microchip.com/en-us/paramet ... h.html/716
Таймеры/счётчики в AVR
- Сообщения: 700
- Зарегистрирован: Вс мар 23, 2025 14:56:55
Существует параметрический поиск, о чём как бы можно было догадаться, наверное...
https://www.microchip.com/en-us/paramet ... h.html/716
https://www.microchip.com/en-us/paramet ... h.html/716
- Реклама
ATmega328PB имеет 5 таймеров, и все с ШИМ.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Сообщения: 553
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Starichok51, откуда в 328 меге 5 таймеров?
Там три, каждый с двумя ШИМ...
Там три, каждый с двумя ШИМ...
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.
относительно новый тип 328PB (не 328P)
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
Интересно, но они опять прожлобили с предделителем - можно делить тактовую частоту только на 8, 64, 256 или 1024.
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
- Реклама
- Сообщения: 581
- Зарегистрирован: Вт окт 01, 2024 15:22:33
У них даже на ARM у таймеров всего 8 делителей... Берите STM32, будет десяток таймеров и у каждого полноценный 16-ти битный пределитель.
кто мешает в обработчик таймера добавить переменную и сбрасывать по достижении нужного значения и выполнять код?
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
- Сообщения: 1430
- Зарегистрирован: Вт июн 07, 2011 08:03:18
- Сообщения: 553
- Зарегистрирован: Ср июн 29, 2022 16:25:45
OKF, нарисовать.
У АВРок, если прерывание разрешено, то обработчик должен быть. Хотя бы RETI в таблице векторов.
Если на Си, то:
Это минимальный обработчик...
У АВРок, если прерывание разрешено, то обработчик должен быть. Хотя бы RETI в таблице векторов.
Если на Си, то:
Код: Выделить всё
ISR(INT0_vect, __attribute__((naked))){
asm volatile ("reti" ::);
}Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.
- Сообщения: 1430
- Зарегистрирован: Вт июн 07, 2011 08:03:18
Нет, ну речь то зашла о делителях.) А мне, к примеру, нужно на пине иметь какую то частоту. И зачем здесь обработчик. Поделил и вперёд!)
Мне нужно не выполнять код, а выдавать аппаратным ШИМом частоту с точностью до 0.2..0.4%, соответственно на 8-битном таймере делитель нужно держать ближе к верху диапазона. Если имеются предделители только 2⁰ и 2³, это не всегда возможно.кто мешает в обработчик таймера добавить переменную и сбрасывать по достижении нужного значения и выполнять код?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
возьми 16-битный таймер, и можешь изменять частоту в широком диапазоне даже без предделителя.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
На 88 меге так и делал, но сейчас её брать для этого применения бессмысленно.
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
watchmaker, тогда расскажи, как ты собрался аппаратным ШИМом формировать нужную тебе частоту?
частоту (меандр) можно формировать таймером без применения аппаратного ШИМа.
шаг 0,2% между соседними частотами на 8-битном таймере ты не получишь никогда.
между числами 250 и 251 (или 249) будет, как раз, 0,4%. с уменьшением числа погрешность будет возрастать.
даже если бы предделители были 1, 2, 4, 8, для любой частоты ты никогда не попадешь в конец записываемого байта.
какие, конкретно, тебе нужны частоты?
частоту (меандр) можно формировать таймером без применения аппаратного ШИМа.
шаг 0,2% между соседними частотами на 8-битном таймере ты не получишь никогда.
между числами 250 и 251 (или 249) будет, как раз, 0,4%. с уменьшением числа погрешность будет возрастать.
даже если бы предделители были 1, 2, 4, 8, для любой частоты ты никогда не попадешь в конец записываемого байта.
какие, конкретно, тебе нужны частоты?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
220..1760 Гц с соотношением соседних частот 2^(1/12). Конкретное начальное значение 220 Гц не столь важно (+/- 6% не проблема), важно как можно более точное соотношение. 0.4% удаётся добиться в диапазоне делителей 128..256 подбором начального значения, а вот при выходе за этот диапазон 1% в идеале.
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
не надо сочинять.watchmaker писал(а):0.4% удаётся добиться в диапазоне делителей 128..256
разница между 128 и 129 дает ошибку 1/128, то есть, около 0,8%.
тебе и самому понятно, что на 8-битном таймере 8-кратное изменение частоты с желаемой точностью ты сделать не можешь. только признаться в этом не хочешь.
так что, бери мегу88 и не морочь голову себе и людям.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Сообщения: 553
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Starichok51, можно в прерывании таймера динамически менять 128/129 и получить нужную среднюю частоту. Но будет джиттер.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.
ему нужны частоты нот, от ля малой октавы до ля третьей октавы. джиттер будет слух резать.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Сообщения: 2
- Зарегистрирован: Сб апр 12, 2025 23:49:05
Здравствуйте, помогите пожалуйста разобраться новичку с таймерами в atmega88p, Использую таймер 2 для шим модуляции, а таймер 0 для прерываний по переполнению, при изменение скважности шим с помощью регистра OCR2B почему то меняется время прерывания таймера 0, никак не могу понять причину, как регистр 2 таймера связан с таймером 0?
- Сообщения: 553
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Starichok51, на самом деле нет. слишком часто будет меняться делитель частоты, да и меняться он будет всего на единицу делителя.
Но это надо пробовать, что б послушал кто то с музыкальным слухом.
darkkis89, фрагмент кода в студию
Но это надо пробовать, что б послушал кто то с музыкальным слухом.
darkkis89, фрагмент кода в студию
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.


