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

Асинхронный режим таймера, управление из главной функции.

Добавлено: 13 сен 2020, 19:03
Germansir
Доброго времени. Нуждаюсь в совете. Инициализировал таймер для работы от часового кварца, прерывания по переполнению. Работает. НО.
Он считает все время, а мне нужно чтоб он начинал считать при нажатии кнопки. Например создаю функцию старт в этой функции все настройки таймера, и когда нажимаю кнопку- реакции никакой. При этом в нормальном режиме когда работает таймер то такая конструкция работает. Как можно решить эту ситуёвину?

Re: Асинхронный режим таймера, управление из главной функции.

Добавлено: 13 сен 2020, 21:25
AntonChip
Приветствую. При нажатии на кнопку разрешаете прерывание от Таймера, обнуляете счетчик, и конечно же сперва настроить таймер

Re: Асинхронный режим таймера, управление из главной функции.

Добавлено: 13 сен 2020, 22:35
Germansir
Спасибо за столь быстрый ответ. Значит, если я правильно понял, я должен
1) инициализировать таймер в мейне.
2)в обработчике кнопок делаю TIMSK|=(1<<TOIE2);
3)затем обнуляю TCCN2=0;

Re: Асинхронный режим таймера, управление из главной функции.

Добавлено: 14 сен 2020, 13:28
AntonChip
Да, только TCNT2 = 0;

Re: Асинхронный режим таймера, управление из главной функции.

Добавлено: 14 сен 2020, 15:06
Germansir
Да, точно, очепятка)))

Re: Асинхронный режим таймера, управление из главной функции.

Добавлено: 14 сен 2020, 17:42
Germansir
Точно. Всё работает. И еще вопросик. Я так понял, что, по-хорошему, всегда при разрешении прерывания от таймеров нужно сбрасывать счетный регистр?

Re: Асинхронный режим таймера, управление из главной функции.

Добавлено: 14 сен 2020, 19:27
AntonChip
Да, нужно обнулять.