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

 
 
> Таймеры, Как расчитать
SergeyM
сообщение Jun 13 2005, 12:40
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 1-05-05
Из: Снежинск
Пользователь №: 4 654



Помогите люди добрые.
Существует наверное какая нибудь формула для расчета прерываний от таймера. Ну чтобы расчитать время через которое будет происходить срабатывание таймера.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Beavius
сообщение Jun 13 2005, 16:07
Сообщение #2





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



>>> t=CCRx/F. Где t - это временной интервал между прерываниями (в секундах), CCRx - это код записанный в регистр сравнения плюс единица (для учета состояния таймера 0x0000), F - это частота тактирования таймера (уже после всех встроенных делителей), в Герцах.

IMHO неправильно...
формула должна быть такая t=(255-CCRx)/F
CCRx (в tiny это TCNT0)

если я неправ поправьте...
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 13 2005, 19:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Beavius @ Jun 13 2005, 22:07)
IMHO неправильно...
формула должна быть такая t=(255-CCRx)/F
CCRx (в tiny это TCNT0)
*

Я не работал с AVR, поэтому могу ошибаться с названиями регистров. Но ваша формула будет верна только для 8-ми битного таймера, и только для режима (если он такой есть?) обратного отсчета, когда таймер считает от максимального значения к нулю. К тому же вы видимо невнимательно читали мое сообщение.
Цитата(rezident)
код записанный в регистр сравнения плюс единица (для учета состояния таймера 0x0000),

Если уж так хотите точности, то уточню так: t=(CCRx+1)/F, где CCRx код записанный в регистр сравнения, а режим таймера - счет вверх от 0x000 до CCR0 или до переполнения. AVR не знаю, а MSP430 оба таких режима поддерживает. У MSP430 есть еще режим UP/DOWN в этом случае могут быть сгенерированы даже три прерывания: от CCR0, от CCRx и при переходе в состояние 0x0000. Так что в этом случае нужно бы еще уточнить, интервал какого именно прерывания интересует? Интервал от CCRx может отличаться, от интервала прерываний по CCR0 и переполнения (обнуления).
Извиняюсь, что возможно зря влез в тему, не зная AVR, но в заголовке не был указан МК про таймер которого спрашивали. Я подумал, что вопрос больше теоретический smile.gif
Go to the top of the page
 
+Quote Post
boban
сообщение Jun 16 2005, 08:59
Сообщение #4





Группа: Участник
Сообщений: 7
Регистрация: 13-04-05
Пользователь №: 4 090



Цитата(rezident @ Jun 13 2005, 22:13)
Если уж так хотите точности, то уточню так: t=(CCRx+1)/F, где CCRx код записанный в регистр сравнения, а режим таймера - счет вверх от 0x000 до CCR0 или до переполнения.


Сейчас я натолкнулся на эти грабельки blink.gif
Первый раз работаю с AVR, до этого было только семейство МК51.

У меня АTMega48 (88/128)... и вроде все делаю правильно и логично:

// инициализация т/с0
TCCR0A = 2; // WGM01..WGM00=10
// Mode2: CTC (Clear Timer on Compare Match)

TCCR0B = 5; // WGM02=0 (для CTC) и таймер запущен
// CS02..CS00=101 CLK/1024 (From prescaler)

OCR0A = 108; // значение в регистр совпадения, соотв. 10мс
// 11,0592МГц/1024=10800 отсчетов в секунду

TIMSK0 = 2; // устан. прерывания по совпадению A

И пусть даже я не учёл эту "+1" (было бы число 107 в OCR0A), но прерывания генерятся не через 10мс как мне нуна, а через 115мс Не могу пока врубиться, в чём здесь лыжи... cranky.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SergeyM   Таймеры   Jun 13 2005, 12:40
- - rezident   Цитата(SergeyM @ Jun 13 2005, 18:40)Помогите ...   Jun 13 2005, 13:45
|- - vet   Цитата(boban @ Jun 16 2005, 12:59)И пусть даж...   Jun 16 2005, 09:12
- - vvs157   Цитата(SergeyM @ Jun 13 2005, 15:40)Помогите ...   Jun 13 2005, 17:19
- - GedasL   AVRCalc http://www.elektronik-projekt.de/include.p...   Jun 13 2005, 17:22
- - LeoLabs   Цитата(SergeyM @ Jun 13 2005, 19:40)Помогите ...   Jun 14 2005, 01:06
- - rmo   Очень удобно AVRCalc. Можно задавать в ms,гц как у...   Jun 14 2005, 03:28
|- - yung   Прикольно, я сейчас как рекламный агент от ImageCr...   Jun 14 2005, 04:46
|- - LeoLabs   Цитата(yung @ Jun 14 2005, 11:46)Прикольно, я...   Jun 14 2005, 06:22
|- - ksinet   есть, но отдельной прогой - это пожалуй недостато...   Jun 14 2005, 07:13
- - SergeyM   Вопрос возник из за того что в книгах пишут: ...   Jun 14 2005, 12:10
- - boban   vet, в первый раз я пишу для АТМеги. Не изменял я ...   Jun 16 2005, 09:23
|- - vet   Цитата(boban @ Jun 16 2005, 13:23)vet, в перв...   Jun 16 2005, 09:33
|- - yung   Очень похоже на фьюзы. Во-первых, 11Мгц/1МГц=11 и ...   Jun 16 2005, 09:37
|- - boban   Цитата(vet @ Jun 16 2005, 12:33)По умолчанию ...   Jun 16 2005, 12:38
|- - ReAl   Цитата(boban @ Jun 16 2005, 15:38)Во-первых, ...   Jun 16 2005, 13:20
|- - Balaganov   Народ, че вы паритесь с этими фузами? Уже говорил ...   Jun 16 2005, 16:29
- - vet   Вы, видимо, запрограммировали кристалл на тактиров...   Jun 16 2005, 12:51
|- - yung   Совсем недавно тема была, глубоко "утонуть...   Jun 16 2005, 13:03
- - boban   Спасибо всем отозвавшимся! А на данный мом...   Jun 17 2005, 07:24


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 03:21
Рейтинг@Mail.ru


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