Например TDA7294

Форум РадиоКот • Просмотр темы - Таймеры/счётчики в AVR
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт июл 04, 2025 03:33:20

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1382 ]     ... , , , 61, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пн окт 17, 2022 09:50:42 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 450
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1629
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Ниже: TIMER1 - выход из RB1/OS1A, код только для одного случая из case, перепишите аналогично для остальных:
Код:
void Counter0_init()
{
  TCCR1B |= (1 << CS10) | (1 << CS12);
  TCCR1B &= ~(1 << CS11);

  TCCR1B &= ~(1 << WGM10);
  TCCR1B &= ~(1 << WGM11);
  TCCR1B |= (1 << WGM12);
  TCCR1B &= ~(1 << WGM13);

  TCCR1A &= ~(1 << COM1A1);
  TCCR1A |= (1 << COM1A0);
  DDRB |= (1 << PB1);
  OCR1A = 150;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пн окт 17, 2022 11:00:36 
Родился

Зарегистрирован: Вс окт 16, 2022 10:28:09
Сообщений: 18
Рейтинг сообщения: 0
Я не совсем понял Ваше сообщение. Эта запись - настройки регистров Т1 должны вызываться в case оператора switch (не понял только почему TCCR1A &= ~(1 << COM1A1);TCCR1A |= (1 << COM1A0) ведь это для счетчика 1А, а у меня 1В и выход соответственно РВ2) , но проблема в том что счетчик вообще не работает. Попробуйте запустить в протеусе.
Спасибо что помогаете новичку


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пн окт 17, 2022 11:42:01 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 450
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1629
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
С кодом выше работает счетчик 1А к РВ1. Прежде чем написать свое сообщении, проверил (только case 2). За другими вариантами (счетчик 1B, к RB2) нет возможности проверять.


Вложения:
Untitled-1.jpg [109.12 KiB]
Скачиваний: 44


Последний раз редактировалось veso74 Пн окт 17, 2022 22:01:41, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пн окт 17, 2022 12:41:15 
Родился

Зарегистрирован: Вс окт 16, 2022 10:28:09
Сообщений: 18
Рейтинг сообщения: 0
Может быть я запутался в datasheet Atmega 328 и в режиме СТС работает только счетчик 1А?


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пн окт 17, 2022 15:30:22 
Это не хвост, это антенна
Аватар пользователя

Карма: 15
Рейтинг сообщений: 212
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1452
Откуда: Тюмень
Рейтинг сообщения: 0
Работают оба при условии если значение OCRA будет больше значения OCRВ… при том что значение OCRВ будет влиять только на временной интервал начиная от наступления прерывания по OCRA… но временной период прерываний OCRВ будет зависеть только от значения OCRA… если же значение OCRA будет меньше значения OCRВ, то прерывание по OCRВ отработает единожды в самом начале старта программы и всё…
Витиевато наверное описал данную ситуацию работы, но надеюсь поймёте суть сказанного… :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Ср окт 19, 2022 01:46:21 
Родился

Зарегистрирован: Вс окт 16, 2022 10:28:09
Сообщений: 18
Рейтинг сообщения: 0
ЗАДАЧУ РЕШИЛ
ВСЕМ СПАСИБО

Добавлено after 1 hour 52 minutes 33 seconds:
Счетчик и switch


Вложения:
switch.c [2.2 KiB]
Скачиваний: 52
Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Вс окт 23, 2022 12:41:11 
Открыл глаза

Зарегистрирован: Пн окт 05, 2020 17:20:11
Сообщений: 44
Рейтинг сообщения: 0
Как переадресовать сигнал выхода таймера(например OC1A -PB1) на другой пин, например PB4 ATMEGA 328P. Просто печатка уже готова и получена, но пришлось изменить код.
Спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Вс окт 23, 2022 14:08:13 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4327
Откуда: Ижевск
Рейтинг сообщения: 2
Напрямую, никак. Можно попробовать задействовать прерывания TIM1_COMPA, TIM1_COMPB, TIM1_OVF и внутри них управлять выходами.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Вс окт 23, 2022 14:57:47 
Это не хвост, это антенна
Аватар пользователя

Карма: 15
Рейтинг сообщений: 212
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1452
Откуда: Тюмень
Рейтинг сообщения: 1
Я бы задействовал прерывание Timer_1_Compare_Match_A, а в нём переключал бы пин РВ4. :)

ЗЫ. Вот тестовый вариант с использованием шильда ардуины… вместо РВ4 задействован вывод РВ5 (светодиод на шильде)… соответственно к выводу РВ1 тоже нужно подключить светодиод… тем самым можно увидеть параллельную работу данных выходов…
Вложение:
temp.hex [504 байт]
Скачиваний: 59


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пн окт 24, 2022 09:02:41 
Открыл глаза

Зарегистрирован: Пн окт 05, 2020 17:20:11
Сообщений: 44
Рейтинг сообщения: 0
Cделал с помощью прерывания. Все работает, правда после, примерно, 40гц начинается рассинхронизация(отставание от первичного сигнала). Но мне достаточно 30гц, поэтому дальше я не экспериментировал с прерываниями.


Вложения:
код.txt [239 байт]
Скачиваний: 53
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пт окт 28, 2022 21:44:15 
Это не хвост, это антенна
Аватар пользователя

Карма: 6
Рейтинг сообщений: 43
Зарегистрирован: Пт ноя 27, 2009 19:47:13
Сообщений: 1314
Откуда: Казань
Рейтинг сообщения: 0
Cделал с помощью прерывания. Все работает, правда после, примерно, 40гц начинается рассинхронизация(отставание от первичного сигнала). Но мне достаточно 30гц, поэтому дальше я не экспериментировал с прерываниями.

Используйте прерывания по сравнению и переполнению. Используйте ассемблерные вставки, тогда у вас в стек только адрес программы с момента вызова будет сохраняться. В прерывании по сравнению бит очищайте одной командой, cbi, в прерывании по переполнению бит устанавливайте, sbi. Так можно избежать проверок и, соответственно, запаздывания.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 14:12:00 
Собутыльник Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 757
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2896
Откуда: приходит весна?
Рейтинг сообщения: 0
Кто-нибудь в курсе, сбрасываются ли у ATmega8 внешним ресэтом предделители частоты у таймеров и АЦП ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 14:54:23 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4327
Откуда: Ижевск
Рейтинг сообщения: 3
Внешним сбросом сбрасывается. Для АЦП, например
Изображение


Вложения:
изображение_2022-11-05_160011211.png [12.08 KiB]
Скачиваний: 224
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 15:18:23 
Это не хвост, это антенна
Аватар пользователя

Карма: 15
Рейтинг сообщений: 212
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1452
Откуда: Тюмень
Рейтинг сообщения: 0
Разве есть в этом разница? :dont_know: Ведь при старте программы вначале происходит вся настройка конфигурации элементов, а уже затем выполняется основной алгоритм программы… и если что-то там сбрасывается, то оно всё равно будет восстановлено… :) Или у кого-то делается иначе? :roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 15:33:52 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4327
Откуда: Ижевск
Рейтинг сообщения: 2
Есть у m8 регистр MCUCSR, в принципе, позволяющий ветвление после внешнего сброса. Правда, у меня не было такой необходимости.
СпойлерИзображение


Вложения:
изображение_2022-11-05_163344076.png [84.09 KiB]
Скачиваний: 47
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 16:04:16 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
"Ветвление после внешнего сброса"? Это куда?, как говорила моя знакомая.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 18:18:02 
Собутыльник Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 757
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2896
Откуда: приходит весна?
Рейтинг сообщения: 0
akl, спасибо! С АЦП понятно: после сброса регистр управления оказывается в дефолтном состоянии (нули в битах), что сбрасывает предделитель частоты:
СпойлерИзображение
Не совсем понятно, что означает вход START, запуск одиночного (или первого в серии) преобразования? Звучит логично, но комментариев к этому в даташите не нашёл.

А что, собственно, с таймерами? У их предделителя нет аппаратного сброса, только ручной? Содержимое ресэт выживает?

Добавлено after 43 minutes 3 seconds:
VNS, Смысл в том, чтобы и программа, и железо работало один-в-один после каждого ресэта, вне зависимости от того, в первый раз или в энный. Чтобы это реализовать, хочу в доскональности понять поведение чипа и компонентов на нём.


Вложения:
fig23-2_ADCpresc.png [3.3 KiB]
Скачиваний: 66
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 18:50:37 
Это не хвост, это антенна
Аватар пользователя

Карма: 15
Рейтинг сообщений: 212
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1452
Откуда: Тюмень
Рейтинг сообщения: 1
чтобы и программа, и железо работало один-в-один после каждого ресэта, вне зависимости от того, в первый раз или в энный. Чтобы это реализовать, хочу в доскональности понять поведение чипа и компонентов на нём.

Если все настройки производить будете сразу после старта, то отпадёт надобность чего-то там выяснять, так как при любом раскладе вначале выполняется конфигурация нужных элементов, а уже затем начинает выполнятся основная программа алгоритма… ежели Вы делаете по другому, то увеличиваете шанс сделать ошибку по незнанию или просто по невнимательности… а оно Вам надо? :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 18:58:10 
Собутыльник Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 757
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2896
Откуда: приходит весна?
Рейтинг сообщения: 0
А ещё тут вопрос в какие моменты времени что происходит. Вот, например, АЦП: если на схеме START означает запуск преобразования, то моменты "тиканья" АЦП будут происходить с одним смещением от выключения RESET. А если это означает что-то другое, то время будет отсчитываться от момента включения АЦП (смещение относительно RESET будет зависеть от момента запуска первого преобразования). Можно, конечно, реализовать включение и запуск АЦП одной командой (благо, что всё это запрятано в один регистр и работает), но хотелось бы более полного знания, на случай, когда такое решение не подходит.

Добавлено after 2 minutes 33 seconds:
VNS, повторюсь ещё раз: хотелось бы знать, как работает предделитель таймеров, есть ли у него "железный" сброс? Буду очень благодарен ответу на этот вопрос.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Сб ноя 05, 2022 19:06:22 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2917
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18734
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
B@R5uk, тебе что, самому в лом сделать сброс предделителей сразу после подачи питания?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1382 ]     ... , , , 61, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y