Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: таймер Т1
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
RicLab
Добрый день.
Суть вопроса такова.
Таймер Т1 настроен на сброс при совпадении с OCR1A и генерирование прерывания.
Задержки от 5с до 100мс, переменная которая записывается в OCR1A изменяется пользователем в любой момент.
При больших задержках таймера он не сразу реагирует на изменение OCR1A.

Как можно сбросить таймер в любой момент времени и заново запустить на счёт?

Вот настройка таймера при инициализации.
Код
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 7,813 kHz
// Mode: CTC top=OCR1A
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x0D;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

alexeyv
Посмотри в регистре TCCR1C бит FOC1A - на сколько я помню, он для этого и предназначен
Сергей Борщ
QUOTE (RicLab @ Jan 31 2011, 15:52) *
Как можно сбросить таймер в любой момент времени и заново запустить на счёт?
TCNT1 = 0?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.