реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> проблема с ATtiny2313, таймер TCNT1
159753258456
сообщение Aug 20 2007, 13:15
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 12-04-06
Пользователь №: 16 063



Понадобилось использовать таймер, для осуществления более-менее предсказуемой задержки. AVRstudio подтверждает мои догадки: при пошаговой отладке функция delay работает, но в реальном устройстве программа зависает именно в функции delay(). В документации описано, что регистры TCNT1H и TCNT1L доступны для чтения, хотя у меня сложилось впечатление, что это не так.
Подскажите, что я делаю не так?

void InitTimer(void)
{ TCCR1A = 0;
TCCR1B = (0<<CS12)|(0<<CS11)|(1<<CS10);
TCCR1C = 0;
}
void delay(int value)
{
TCNT1 = value;
while(TCNT1H);
}
Go to the top of the page
 
+Quote Post
SlavaG
сообщение Aug 20 2007, 13:23
Сообщение #2





Группа: Участник
Сообщений: 11
Регистрация: 14-07-06
Из: Кишинёв
Пользователь №: 18 825



для чтения значения TCNT1H надо сначала прочитать значение TCNT1L, т.к. доступ к TCNT1H осуществляется через временный регистр, и значение в этом регистре обновляется при доступе к TCNT1L. Для записи, сначала задаём TCNT1H, затем TCNT1L. Так со всеми 16-ти битными регистрами.
Go to the top of the page
 
+Quote Post
159753258456
сообщение Aug 20 2007, 13:52
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 12-04-06
Пользователь №: 16 063



Цитата(SlavaG @ Aug 20 2007, 16:23) *
для чтения значения TCNT1H надо сначала прочитать значение TCNT1L, т.к. доступ к TCNT1H осуществляется через временный регистр, и значение в этом регистре обновляется при доступе к TCNT1L. Для записи, сначала задаём TCNT1H, затем TCNT1L. Так со всеми 16-ти битными регистрами.


всё стало ясно, спасибо!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 06:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016