Страница 1 из 1

Нужно задействовать Timer1

Добавлено: Пт дек 09, 2016 20:27:17
rojnov
Приветствую всех, кто еще не спит.
Детский вопрос. Нужно задействовать Timer1, но чтобы он считал не с 0 до 65535, а с 5000 до 65535. Если я до

начала цикла Do-Loop укажу таймеру начальное значение Timer1=5000, т.е. примерно так:

Config Nimer1=Timer, Prescale=64
Timer1=5000
...
...
Do
Start Timer1
...
...
...
Stop Timer1
Loop

Будет ли при каждом круге цикла Do-Loop таймер стартовать со значения 5000, или надо каждый раз указывать ему

начальное значение?

Re: Вопрос новичка

Добавлено: Пт дек 09, 2016 20:50:31
BOB51
Таймер считает от 0 до 65535 (суммирующий) или от 65535 до 0 (вычитающий).
Промежуточные значения для АВРок задаются регистрами сравнения по совпадению.
Загружаем в оные 65535-5000 и выбираем соответствующий режим работы таймера.
В противном случае начальное значение потребует перезагрузки перед началом каждого цикла.
8)

Re: Вопрос новичка

Добавлено: Сб дек 10, 2016 04:59:37
akl
rojnov писал(а): Нужно задействовать Timer1, но чтобы он считал не с 0 до 65535, а с 5000 до 65535...
Будет ли при каждом круге цикла Do-Loop таймер стартовать со значения 5000, или надо каждый раз указывать ему начальное значение?
Нужно каждый раз присваивать начальное значение

Код: Выделить всё

Config Nimer1=Timer, Prescale=64
Do
Timer1=5000
Start Timer1
...
...
...
Stop Timer1
Loop
BOB51 писал(а):Таймер считает от 0 до 65535 (суммирующий) или от 65535 до 0 (вычитающий).
Замечу, таймер в некоторых режимах может работать на вычитание только после суммирования.
UP_DOWN_TIMER.PNG
(42.97 КБ) 314 скачиваний
Отдельного режима вычитания у таймеров AVR нет.

Re: Вопрос новичка

Добавлено: Сб дек 10, 2016 08:36:50
COKPOWEHEU
А счет от 0 до 60535 не устраивает? Это таймер умеет аппаратно.