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

 
 
> Таймер1, режим по совпадению
Kesha123
сообщение Jul 3 2006, 05:54
Сообщение #1


Участник
*

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



Кто-нибудь подскажет, как запустить режим по совпадению таймера1? А, именно, имеется мега32 16МГц, нужно вызывать прерывание каждую миллисекунду. Заранее благодарен!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Harvester
сообщение Jul 3 2006, 07:38
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



CS12...CS10 = 010 (регистр TCCR1B) - предделитель clk/8
значение для сравнения по формуле K = Tзад/(n/Fclk) = Fclk*Tзад/n
n - коэфф предделителя
Tзад - требуемый период
Fclk - тактовая частота
K = 16E6*1E-3/8 = 2000

1. биты WGM13...WGM10 = 0100 (WGM11, 10 - TCCR1A; WGM13, 12 - TCCR1B) - режим CTC
OCR1A = 2000 - с чем сравнивать
OCIE1A = 1 (регистр TIMSK) - прерывание
или
2. WGM13...WGM10 = 1100 - режим CTC
OCR1A = 2000 - с чем сравнивать
TICIE1 = 1 (регистр TIMSK) - прерывание


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jul 5 2006, 17:55
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Harvester @ Jul 3 2006, 11:38) *
CS12...CS10 = 010 (регистр TCCR1B) - предделитель clk/8
значение для сравнения по формуле K = Tзад/(n/Fclk) = Fclk*Tзад/n
n - коэфф предделителя
Tзад - требуемый период
Fclk - тактовая частота
K = 16E6*1E-3/8 = 2000


OCR1A = 2000 - с чем сравнивать


OCR1A = 2000 - 1 = 1999
Go to the top of the page
 
+Quote Post
Kesha123
сообщение Jul 6 2006, 05:38
Сообщение #4


Участник
*

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



OCR1A = 2000 - 1 = 1999
[/quote]

Да! Пробовал при OCR1A без вычитания единицы - погрешность измерения временного интервала была 0,053%, вычел единицу - в итоге погрешность стала 0,0035% smile.gif
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 6 2006, 09:53
Сообщение #5


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Kesha123 @ Jul 6 2006, 04:38) *
Да! Пробовал при OCR1A без вычитания единицы - погрешность измерения временного интервала была 0,053%, вычел единицу - в итоге погрешность стала 0,0035% smile.gif


Поясните, что вы измеряете? И как определяете погрешность? В своё время я довел относительную погрешность измерения периода входного сигнала на авр8515 до 1Е-7, т.е. 0.00001%, так что вам есть куда развиваться(:-)


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Kesha123
сообщение Jul 6 2006, 10:10
Сообщение #6


Участник
*

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



Цитата(=GM= @ Jul 6 2006, 13:53) *
Цитата(Kesha123 @ Jul 6 2006, 04:38) *

Да! Пробовал при OCR1A без вычитания единицы - погрешность измерения временного интервала была 0,053%, вычел единицу - в итоге погрешность стала 0,0035% smile.gif


Поясните, что вы измеряете? И как определяете погрешность? В своё время я довел относительную погрешность измерения периода входного сигнала на авр8515 до 1Е-7, т.е. 0.00001%, так что вам есть куда развиваться(:-)


Прерывание вызывается каждую миллисекунду. Контролирую по электронному секундомеру СТЦ-2М.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 6 2006, 12:33
Сообщение #7


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Kesha123 @ Jul 6 2006, 09:10) *
Прерывание вызывается каждую миллисекунду. Контролирую по электронному секундомеру СТЦ-2М.

Ну вы толком объясните, что вы измеряете. Ваш секундомер находится внутри процессора? Инфу из вас приходится клещами тянуть(:-).


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Kesha123
сообщение Jul 6 2006, 12:56
Сообщение #8


Участник
*

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



Цитата(=GM= @ Jul 6 2006, 16:33) *
Цитата(Kesha123 @ Jul 6 2006, 09:10) *

Прерывание вызывается каждую миллисекунду. Контролирую по электронному секундомеру СТЦ-2М.

Ну вы толком объясните, что вы измеряете. Ваш секундомер находится внутри процессора? Инфу из вас приходится клещами тянуть(:-).


Грубо говоря, процессор выступает в роли счетчика времени (показания выводятся на ЖКИ). В роли образцового счетчика - СТЦ-2М. Начальные показания = 0. При подаче команды СТАРТ стартуют оба устройства. При подаче СТОП, оба тормозят. После чего снимаю показания обоих и вычисляю погрешность.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 6 2006, 14:20
Сообщение #9


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Kesha123 @ Jul 6 2006, 11:56) *
Грубо говоря, процессор выступает в роли счетчика времени (показания выводятся на ЖКИ). В роли образцового счетчика - СТЦ-2М. Начальные показания = 0. При подаче команды СТАРТ стартуют оба устройства. При подаче СТОП, оба тормозят. После чего снимаю показания обоих и вычисляю погрешность.


Если я правильно понял, исходя из параметров СТЦ-2, вы получаете разницу 35 мс на интервале в 1000 сек или что-то около того. Поскольку ваш измеритель дает погрешность в 1 мс, вы меряете не ошибку измерения периода, а погрешность вашего тактового генератора. Стоит подумать о замене генератора(:-).


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Kesha123
сообщение Jul 7 2006, 06:32
Сообщение #10


Участник
*

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



Пожалуй, стоит думать о замене кварца на проце blink.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 7 2006, 07:41
Сообщение #11


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Kesha123 @ Jul 7 2006, 09:32) *
Пожалуй, стоит думать о замене кварца на проце blink.gif

После того как замените кварц и получите те же результаты, попытайтесь всё-таки сделать так, как я Вам говорил в моём предыдущем сообщении.
Такая погрешность как у Вас как раз говорит о неправильном подходе к измерению временнЫх интервалов, а вовсе не о точности кварца.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 7 2006, 11:59
Сообщение #12


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Kesha123 @ Jul 7 2006, 09:32) *
Пожалуй, стоит думать о замене кварца на проце

До смены кварца попробуйте поставить подстроечный конденсатор к ноге кварца и на землю (или последовательно, посмотрите что лучше, зависит от схемы включения), и поиграться настройкой.
В любом случае, если вы хотите сделать точный прибор, то лучше использовать внешний калиброванный кварцевый генератор, может быть с подогревом и термокомпенсацией...
И вот еще что. Достигнутая вами погрешность еще ни о чем не говорит. Попробуйте получить СКО на хотя бы 100 измерениях, тогда можно судить о достоверности ваших измерений.

Цитата(IgorKossak @ Jul 7 2006, 06:41) *
После того как замените кварц и получите те же результаты, попытайтесь всё-таки сделать так, как я Вам говорил в моём предыдущем сообщении.
Такая погрешность как у Вас как раз говорит о неправильном подходе к измерению временнЫх интервалов, а вовсе не о точности кварца.

У автора единица измерения = 1 мс. В принципе он должен был бы получить погрешность в 1 мс, ну или +-1 мс (поскольку команды старт и стоп асинхронны с источником 1 мс), а он получает на два порядка больше.
А вы хотите, чтобы он измерял точнее, чем одна миллисекунда. Объясните, откуда у него набегает ошибка в 35 мс? Он просто подсчитывает импульсы заполнения в течение длительного интервала - аналог частотомера.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kesha123   Таймер1   Jul 3 2006, 05:54
- - ALexx   Цитата(Kesha123 @ Jul 3 2006, 08:54) Кто-...   Jul 3 2006, 07:24
|- - Kesha123   Цитата(ALexx @ Jul 3 2006, 11:24) Цитата(...   Jul 3 2006, 07:38
|- - Harvester   Цитата(Kesha123 @ Jul 3 2006, 11:38) Цита...   Jul 3 2006, 08:18
- - IgorKossak   Если требование по точности временнОго интервала ж...   Jul 5 2006, 07:03
|- - Kesha123   Цитата(IgorKossak @ Jul 5 2006, 11:03) Ил...   Jul 5 2006, 11:08
- - IgorKossak   Когда я отвечал, я смотрел на вопрос в теме. Если ...   Jul 7 2006, 12:48
- - =GM=   Цитата(IgorKossak @ Jul 7 2006, 11:48) Ко...   Jul 7 2006, 13:43
- - Kesha123   Погрешность стабильная на любых интервалах измерен...   Jul 10 2006, 04:24
- - =GM=   Цитата(Kesha123 @ Jul 10 2006, 03:24) Пог...   Jul 10 2006, 14:07


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

 


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


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