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

 
 
> Затраты на обработку прерывания по переполнению таймера.
zheka
сообщение Jan 21 2010, 18:11
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Господа, пишу программку для подсчета периода импульсов. Могу применять только 8-битный таймер, ибо 16-ти битный таймер занят.
Всвязи с тем что переполнение его наступает через каждые 256 тактов, их приходится точно просчитывать.
Вот такой вот код:
Код
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
//tacts++;
a=TCNT0;
TCCR0=0x00;
lcd_gotoxy(0,0);
lcd_putsf("       ");

lcd_gotoxy(0,0);
   sprintf(s," %i", a);
     lcd_puts(s);

TCCR0=0x01;


}


То есть сразу по прерывания по переполнения таймер по идее должен сбрасываться. В самом начале обработчика значение TCNT0 записывается в переменную a. И ее значение выводится на экран. Так вот в данном случае оно равно 32 или 33 (в зависимости от фазы луны и того, чем я похмелялся )))) ). Что контроллер делает эти 32 такта?
ПРичем 32 такта выдается хоть при 16 000 кГц, хоть при делении на 8 (2000 кГц).
Инициализирую таймер так:

Код
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 16000,000 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x01;
TCNT0=0x00;
OCR0=0x00;


Что делать и кто виноват?

У кого нибьудь есть опыт написания таких программ, когда приходилось несколько циклов переполнения таймера складывать. Как-нибудь компенсировали время, затрачиваемое на обработку прерывания?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zheka   Затраты на обработку прерывания по переполнению таймера.   Jan 21 2010, 18:11
- - Goodefine   Цитата(zheka @ Jan 21 2010, 22:11) ...Всв...   Jan 21 2010, 18:34
- - zheka   Господи, ну читайте же внимательно мой код. Или ук...   Jan 21 2010, 18:37
- - rezident   Цитата(zheka @ Jan 21 2010, 23:11) Что ко...   Jan 21 2010, 18:37
- - zheka   КодА листинг ассемблера посмотреть не догадались? ...   Jan 21 2010, 18:52
|- - defunct   Цитата(zheka @ Jan 21 2010, 20:52) Никак ...   Jan 21 2010, 19:14
- - rezident   Цитата(zheka @ Jan 21 2010, 23:52) К сожа...   Jan 21 2010, 19:07
- - zheka   Господа, я в принципе только сейчас понял: вывод н...   Jan 22 2010, 03:54
|- - _Pasha   Цитата(zheka @ Jan 22 2010, 07:54) на каж...   Jan 22 2010, 04:54
- - Александр Куличок   ЦитатаДлительность от 500 мкс до 1 сек. Точность -...   Jan 22 2010, 06:15
- - fantex   ЦитатаОпять таки-чисто практический вопрос - имея ...   Jan 22 2010, 09:09
|- - rezident   Цитата(fantex @ Jan 22 2010, 14:09) При п...   Jan 22 2010, 09:59
- - fantex   Тогда какой смысл измерять с таким разрешением (0....   Jan 22 2010, 10:41
- - zheka   ЦитатаПри периоде импульсов 1 сек, получается точн...   Jan 22 2010, 11:37
- - _Pasha   Если точность 1 клок, то Вам без input capture не ...   Jan 22 2010, 12:40
- - zheka   Все господа.... мысли кончились. Не гонясь за точн...   Jan 22 2010, 14:39
|- - Палыч   Цитата(zheka @ Jan 22 2010, 17:39) Вот ко...   Jan 22 2010, 15:36
- - zheka   Хм.. а вот тут уже незнание мной матчасти, вопрос ...   Jan 22 2010, 19:14
- - Александр Куличок   ЦитатаTimer1 в режиме PWM настроен на период 20 мс...   Jan 22 2010, 21:10
|- - Палыч   Цитата(Александр Куличок @ Jan 23 2010, 00...   Jan 23 2010, 07:38
- - zheka   ЦитатаА почему не используете одно из прерываний т...   Jan 24 2010, 11:05
|- - _Pasha   Цитата(zheka @ Jan 24 2010, 15:05) PWM пе...   Jan 24 2010, 13:11
- - zheka   Дискретность? думаю, что той что обеспечит 8-битны...   Jan 24 2010, 14:56
- - zheka   В общем, конфликтуют у меня два таймера. Переделал...   Jan 24 2010, 18:50
- - fantex   Вот пример реализации измерения частоты импульсов ...   Jan 25 2010, 11:38
- - zheka   Fantex, спасибо, но, с алгоритмом я разобрался, у ...   Jan 25 2010, 12:44
|- - ILYAUL   Цитата(zheka @ Jan 25 2010, 15:44) ... ре...   Jan 25 2010, 13:26
- - zheka   Камень ATMega32. Вот, господа, упростил до безобр...   Jan 25 2010, 13:59
|- - Палыч   Цитата(zheka @ Jan 25 2010, 16:59) Почему...   Jan 25 2010, 15:49
- - zheka   Палыч, вообще-то прерывания тапймера1 запрещены. П...   Jan 25 2010, 16:00
|- - Палыч   Цитата(zheka @ Jan 25 2010, 19:00) вообще...   Jan 25 2010, 16:19
- - zheka   Палыч, однако спасибо Вам. Вынес все наружу. Все з...   Jan 25 2010, 17:32


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

 


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


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