Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
OtixMytom
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 4
1

В чем отличие таймера АВР от счетчика АВР?

23.01.2017, 05:03. Просмотров 4729. Ответов 24
Метки нет (Все метки)

Объясните,пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2017, 05:03
Ответы с готовыми решениями:

Программатор АВР
Доброго времени суток всем. Хочу собрать программатор для AVR. FTBB у меня есть собранный, но стал...

Програматор к авр мега 32
спаял громова взял питание от блока питания компьютера спаял провод, подключил к ком1 но не...

Кодировка АВР студио
Приветствую ! Запустил дисплей МЭЛТ 20S4 без особых проблем, но напоролся на интересное явления в...

Замена AT89S8253 на АВР-ку
Здравствуйте, колллеги! Добавлено: Не читайте этой муры. Смотрите следующий пост. Там меньше...

Модели микроконтроллеров АВР
Недавно изучил более-менее модель тини2313. Хотелось бы поиграться (по изучать) с более мощной...

24
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
23.01.2017, 05:20 2
В чём отличие яблока от фрукта?
Таймер это счётчик, который считает время (например такты системного клока).
В AVR, да и во многих других мк, все счётчики могут работать таймерами, и поэтому называются официально Timer/Counter.
0
yiv91
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
23.01.2017, 06:40 3
А мне расскажите, пожалуйста, как заставить счетчик в АВР считать на уменьшение. В счетчиках в блок-схеме есть сигнал "direction", но как его изменить, я не нашел.
0
omokost
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,753
23.01.2017, 07:44 4
Цитата Сообщение от yiv91
А мне расскажите, пожалуйста, как заставить счетчик в АВР считать на уменьшение. В счетчиках в блок-схеме есть сигнал "direction", но как его изменить, я не нашел.
На уменьшение счетчик начинает считать во втором цикле формирования ШИМ сигнала. Это делает внутренняя схема "direction". Принудительно переключить битом конфигурации на такое направление счета не получится, нет такого бита.
0
23.01.2017, 07:44
Tistir500
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 333
23.01.2017, 10:03 5
Жесть! Всякие кино вообще не смотрим? Злодей установил бомбу и включил ТАЙМЕР, что мы видим на экране? Цифирьки на экране таймера уменьшаются.
Счетчик считает вверх (инкремент), таймер считает вниз (декремент).
0
Stiit.mi
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
23.01.2017, 10:19 6
Таймер - это счетчик плюс схема сравнения плюс (опционально) схема управления ножками для формирования сигналов.
Сам по себе счетчик может обладать доп функционалом, не нужным для целей таймера - например захват/тактирование от внешнего сигнала.

Например, в stm32 четырехканальный таймер - это один счетчик и четыре схемы сравнения
0
Sthuthu
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
23.01.2017, 13:40 7
Цитата Сообщение от Tistir500
Счетчик считает вверх (инкремент), таймер считает вниз (декремент).
Нет
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
23.01.2017, 13:43 8
Таймер = устройство измерения времени (путем подсчёта тиков). Счётчик = устройство счета входного воздействия (тиков).
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
23.01.2017, 23:16 9
Цитата Сообщение от yiv91
А мне расскажите, пожалуйста, как заставить счетчик в АВР считать на уменьшение. В счетчиках в блок-схеме есть сигнал "direction", но как его изменить, я не нашел.
Прочитать состояние счетчика и применить команду СОМ, побитовая инверсия - получится обратный счет.
0
BtYur
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 32
24.01.2017, 10:31 10
Цитата Сообщение от OtyxMytom
Объясните,пожалуйста.
А откуда вопрос-то такой родился?
В AVR эти понятия не делятся, и эта приблуда в них обзывается "таймер-счётчик".
0
yiv91
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
24.01.2017, 10:43 11
Цитата Сообщение от инкер
Прочитать состояние счетчика и применить команду СОМ, побитовая инверсия - получится обратный счет.
Нее... Мне надо, чтобы как Timer2 в 52 процессоре - загрузить интервал в таймер и заставить его считать вниз, а через нужное время сработало прерывание. Потому что складывать и умножать на Асме я кое-как научился, а вот вычитать и делить пока не очень.
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
24.01.2017, 11:28 12
Цитата Сообщение от yiv91
Цитата Сообщение от инкер
Прочитать состояние счетчика и применить команду СОМ, побитовая инверсия - получится обратный счет.
Нее... Мне надо, чтобы как Timer2 в 52 процессоре - загрузить интервал в таймер и заставить его считать вниз, а через нужное время сработало прерывание. Потому что складывать и умножать на Асме я кое-как научился, а вот вычитать и делить пока не очень.
Загружай инвертированный интервал в счётный регистр TCNT и пусть таймер считает до переполнения вверх...
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
24.01.2017, 11:33 13
Цитата Сообщение от yiv91
Нее... Мне надо, чтобы как Timer2 в 52 процессоре - загрузить интервал в таймер и заставить его считать вниз, а через нужное время сработало прерывание.
Тогда СОМ применить к загружаемому в таймер числу.
Только с двухбайтным будет чуть сложнее, хотя принцип общий - взять число FFFFh, вычесть из него ваше задание таймера, загрузить в счетчик, ждать прерывания по переполнению.
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
24.01.2017, 12:20 14
Цитата Сообщение от инкер
Тогда СОМ применить к загружаемому в таймер числу.
Только с двухбайтным будет чуть сложнее, хотя принцип общий - взять число FFFFh, вычесть из него ваше задание таймера, загрузить в счетчик, ждать прерывания по переполнению.
Почему просто не применить побитную инверсию к старшему и младшему байту.
0
OtixMytom
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 4
25.01.2017, 01:42 15
Цитата Сообщение от BtYur
Цитата Сообщение от OtyxMytom
Объясните,пожалуйста.
А откуда вопрос-то такой родился?
В AVR эти понятия не делятся, и эта приблуда в них обзывается "таймер-счётчик".
В универе спросил преподаватель. Сдаю лабу "Таймеры AVR"
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
26.01.2017, 13:41 16
Цитата Сообщение от яверт
Почему просто не применить побитную инверсию к старшему и младшему байту.
Сей вопрос лишил покоя и сна на два дня.))

Такое решение само напрашивается, самое компактное, но по какой-то причине, которую точно вспомнить не могу, отказался от него в пользу вычитания. Дело было давно, когда сам осваивал АВР. Было что-то типа программного ШИМа на счетчике, пока применялся 8-ми разрядный счетчик и команда СОМ, все работало нормально, перешел на 16-тиразрядный и два СОМа - возник эффект то ли пропадания импульсов, то ли подергивание фронта. Проверялось все осциллографом, причину тогда "вычислил" как казалось, так как тестовая программа начала показывать монотонное, без пропусков и дерганий, увеличение ширины импульса от нуля до максимума.
Версия такая - возможно в программе была ошибка и она исчезла при модификации, при замене двух СОМов на вычитание.
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
26.01.2017, 14:44 17
Посмотрите разницу между командами COM и NEG. Для примера возьмите число 0.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
26.01.2017, 16:52 18
Цитата Сообщение от u37
Посмотрите разницу между командами COM и NEG. Для примера возьмите число 0.
Разницу я знаю, но подсказка сработала, совсем как в анекдоте - "не в лотерею, а преферанс и не выиграл, а проиграл" ))
Все оказалось просто, ошибка происходила не с двумя СОМ, а с двумя NEG, которые я по неопытности применял, чтобы получить двухбайтовое дополнительное число.
Из FFFFh получалось 0101h вместо 0001h например. С одним байтом работало, с двумя ломалось.
Пришлось придумать макрос, такой чтобы не привлекать дополнительные регистры

.MACRO MOD @0,@1
NEG @1
BRBC 1,M1
DEC @0
M1: COM @0
.ENDM
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
26.01.2017, 17:43 19
))) ADC/SBC
И вообще, переходите на 32-битный процессор. "Оно" того точно не стоит.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
26.01.2017, 17:56 20
Цитата Сообщение от u37
))) ADC/SBC
И вообще, переходите на 32-битный процессор. "Оно" того точно не стоит.
Первую строку не понял, а по второй - если я начинал с 4-хбитного, задержался на восьми, то по логике сначала 12-ти битные освоить придется. )))
0
26.01.2017, 17:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2017, 17:56

макросы в авр студио
Ну разъясните для тех кто на броне поезде пожалуйста. В Студии в начале основной программы включил...

Прошу совета в освоении АВР
Доброго времени суток форумчанам! Нахожусь в начале изучения контроллеров, пишу только пока в...

компаратор авр и 2полярное меряние
Требуетса померять входной сигнал компаратором, вернее таймером вычислить длину импульсов, вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru