Работа с таймером/счетчиком T/C0 в МК Atmega16

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
partizan
Родился
Сообщения: 4
Зарегистрирован: Пн июл 05, 2010 16:02:13

Работа с таймером/счетчиком T/C0 в МК Atmega16

Сообщение partizan »

Здравствуйте.Можете объяснить в чем ошибка?Хочу реализовать функцию time,которая делает задержку.Вот текст программы:

#include <avr/io.h>

void time(int n)
{
int i;
TCCR0=0x05;//запускаем таймер T0 c делителем частоты на 1024

for(i=0;i<=n;i++)
{
TCNT0=6;//записываем в регистр TCNT0 6,для того чтобы таймер начал отсчет с этого значения
while(!TOV0);//;ждем пока влаг переполнения не станет равным 1
}
TCCR0=0;//отключаем таймер
}
.......
.......
.......
и еще такой вопрос в Proteuse можно смоделировать работу таймеров/счетчиков?
Shplv
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Пт июн 04, 2010 19:24:26

Re: Работа с таймером/счетчиком T/C0 в МК Atmega16

Сообщение Shplv »

partizan писал(а):.Можете объяснить в чем ошибка?


Ошибку можно исправить так :
while(!(TIFR & (1 << TOV0))); //ждем пока флаг переполнения не станет равным 1
В чём заключалась, надеюсь, объяснять нет надобности?
partizan
Родился
Сообщения: 4
Зарегистрирован: Пн июл 05, 2010 16:02:13

Re: Работа с таймером/счетчиком T/C0 в МК Atmega16

Сообщение partizan »

Shplv писал(а):Ошибку можно исправить так :
while(!(TIFR & (1 << TOV0))); //ждем пока флаг переполнения не станет равным 1
В чём заключалась, надеюсь, объяснять нет надобности?


Если честно,то я понял в чем заключалась ошибка.Можно с объяснением?)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»