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

 
 
> Tiny2313 нужна 1 сек. на таймер 0, "Уходит" время :(
AndryG
сообщение Jul 8 2007, 19:46
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317



Доброго времени суток.

Контроллер - Tiny2313
Частота - 8МГц
Компилятор - CVAVR 1.25.2b1

Одна из функций устройства - подсчет текущего времени.
Используется таймер 0 (второй уже недоступен).
Прерывание по совпадению и автоматическая очистка счетчика при условии сравнения.
С предделителем 256 получаю частоту прерыания ровно 125Гц (64000 тактов)
И в прерывании делитель ставлю на 125.

Вроде всё верно, но за 8,5 часов часики удрали на 4 секунды sad.gif
Устройство активно работает с внутренней EEPROM.

Вот тут и начинаются вопросы ...
- если прерывание таймера возникает при их глобальном запрещении, или выполнении "длинных" команд,
то прерывание вызовется с задержкой ... сбивается ли при этом счетчик циклов в таймере?
- кто что может посоветовать?

_____
P.S.
Запскал HEX в Студии ... ставлю точку останова на вектор прерывания ...
прерывание вызывается каждые 64000 такта ... почти всегда, иногда выскакивает 64001 или
64002 - видать из-за длительных команд ... но потом всё выравнимается.
Правда симуляцию я запускал максимум на секунду - на моем компе на это около 30 минут :-)
А может это такая точность кварца? Слабо верится. Да! фузы верно настроены - проверял уже.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Jul 13 2007, 10:44
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
А вот всем вам вопрос на засыпку: зачем введён такой режим WGM=5?

ЧИМ + ШИМ.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 13 2007, 11:31
Сообщение #3


Ambidexter
*****

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



Цитата(defunct @ Jul 13 2007, 09:44) *
ЧИМ + ШИМ

Это как?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jul 13 2007, 11:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(=GM= @ Jul 13 2007, 19:31) *
Это как?
оччччччь просто smile.gif

ШИМ (широтно-импульсная модуляция) aka WGM = 0x01:
Меняется длительность импульса при неизменной частоте - производится при помощи изменения содержимого регистра OCRnx

ЧИМ (частотно-импульсная модуляция) aka WGM = 0x05:
Меняется длительность импульса пропорционально частоте - так же при помощи OCRnx


--------------------
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 13 2007, 15:23
Сообщение #5


Ambidexter
*****

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



Цитата(prottoss @ Jul 13 2007, 10:53) *
ШИМ (широтно-импульсная модуляция) aka WGM = 0x01:
Меняется длительность импульса при неизменной частоте - производится при помощи изменения содержимого регистра OCRnx

Здесь вроде бы ясно. А вот здесь непонятно.
Цитата(prottoss @ Jul 13 2007, 10:53) *
ЧИМ (частотно-импульсная модуляция) aka WGM = 0x05: Меняется длительность импульса пропорционально частоте - так же при помощи OCRnx

Мне казалось, что будут генерироваться короткие импульсы неизменной ширины в два такта (может в один), а период будет меняться с помощью OCR0А. Т.е. длительность импульсов неизменна, а частота импульсов меняется. Легко убедиться в этом, если постепенно приближать значение OCR0А к 0xFF, скажем, при OCR0А=0xFЕ импульсы будут шириной 4 такта, а при OCR0А=0xFF импульсы будут шириной 2 такта.


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


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(=GM= @ Jul 13 2007, 23:23) *
Мне казалось...
Я поражаюсь 07.gif Парень убедил всех и меня... В итоге он сам не знает того, в чем он всех победил... crying.gif



Еще раз: PWM = 0x005:

1. Цикл счета есть количество импульсов TCn от OCRnx ...0 + 0 ... OCRnx

2. Фаза сигнала меняется при переходе значения счетчика через 0

3. Меняя значение OCRnx мы, соответсвенно меняем частоту изменения фазы, при этом длительность импульса тоже меняется...


--------------------
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 13 2007, 16:33
Сообщение #7


Ambidexter
*****

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



Цитата(prottoss @ Jul 13 2007, 14:38) *
Я поражаюсь 07.gif Парень убедил всех и меня... В итоге он сам не знает того, в чем он всех победил... crying.gif

Чудак, вы рrottoss. не собирался я никого ни побеждать, ни злить. Истина, как говорится, мне дороже.
По тому делу, которое мы обсуждали раньше. Вы так ничего и не поняли(:-). Говорю последний раз. Представьте себе, при WGM=5 счётчик считает вверх. 0, 1, 2, 249. Следующее значение счетчика будет 250, и оно совпадёт с содержимым OCR0А, которое равно 250 (на самом деле 249, ну да ладно, оставим так). Что произойдёт? А вот что. Направление счёта счетчика сменится на обратное, затем произойдёт обновление регистра OCR0А, в него перепишется ТО ЖЕ САМОЕ ЗНАЧЕНИЕ 250. Со следующего такта счетчик начнёт считать вниз. Когда счётчик дойдёт до 0, возникнет прерывание таймера по переполнению TOV0. Далее весь цикл повторится, надеюсь, теперь вы это поняли?
Ну а прерывания (125 штук в секунду) можно использовать для организации текущего времени.

Теперь по вашему сегодняшнему заявлению.
Цитата(prottoss @ Jul 13 2007, 14:38) *
Еще раз: PWM = 0x005:

prottoss, это уже не смешно, ну не PWM=5, а WGM=5.
Цитата(prottoss @ Jul 13 2007, 14:38) *
1. Цикл счета есть количество импульсов TCn от OCRnx ...0 + 0 ... OCRnx
2. Фаза сигнала меняется при переходе значения счетчика через 0
3. Меняя значение OCRnx мы, соответственно меняем частоту изменения фазы, при этом длительность импульса тоже меняется...

1) Ну хорошо, согласен.
2) О, боги! Ну откуда вы взяли, что фаза OCR0 будет меняться при переходе значения счетчика через 0? Ну хотя бы взгляните на график на рис.32. Где там меняется фаза выходного сигнала?
3) Где по-вашему будет происходить сравнение содержимого счётчика и OCR0? Если в нуле, тогда у вас всегда будет меандр переменной частоты.


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

Сообщений в этой теме
- AndryG   Tiny2313 нужна 1 сек. на таймер 0   Jul 8 2007, 19:46
- - AndreyKeil   Цитата(AndryG @ Jul 9 2007, 01:46) Реж...   Jul 8 2007, 20:09
|- - defunct   Цитата(AndreyKeil @ Jul 8 2007, 23:09) Кв...   Jul 8 2007, 21:18
|- - singlskv   Цитата(defunct @ Jul 9 2007, 01:18) Это т...   Jul 8 2007, 22:12
- - GetSmart   Тоже думаю, что виновата не программа, а точность ...   Jul 8 2007, 22:18
|- - singlskv   Цитата(GetSmart @ Jul 9 2007, 02:18) Прич...   Jul 8 2007, 22:27
- - prottoss   Мдя... И никто не сказал, что уход то из-за того, ...   Jul 9 2007, 00:09
|- - singlskv   Цитата(prottoss @ Jul 9 2007, 04:09) Мдя....   Jul 9 2007, 00:39
|- - ae_   Цитата(prottoss @ Jul 9 2007, 09:09) Мдя....   Jul 9 2007, 00:47
|- - prottoss   Цитата(ae_ @ Jul 9 2007, 08:47) Начал отв...   Jul 9 2007, 10:42
- - AndryG   Спасибо всем за ответы. Вчера весь день был на объ...   Jul 10 2007, 05:28
|- - prottoss   Цитата(AndryG @ Jul 10 2007, 13:28) Спаси...   Jul 10 2007, 10:27
|- - defunct   Цитата(prottoss @ Jul 10 2007, 13:27) Как...   Jul 10 2007, 10:44
||- - prottoss   Цитата(defunct @ Jul 10 2007, 18:44) OCR0...   Jul 10 2007, 10:49
|- - =GM=   Цитата(prottoss @ Jul 10 2007, 09:27) Че ...   Jul 10 2007, 11:21
|- - prottoss   Цитата(=GM= @ Jul 10 2007, 19:21) Вы сами...   Jul 10 2007, 11:31
|- - =GM=   Цитата(prottoss @ Jul 10 2007, 10:31) ......   Jul 10 2007, 12:07
|- - prottoss   Цитата(=GM= @ Jul 10 2007, 20:07) Вы хоти...   Jul 10 2007, 12:29
|- - =GM=   Цитата(prottoss @ Jul 10 2007, 11:29) Я х...   Jul 10 2007, 12:40
|- - prottoss   Цитата(=GM= @ Jul 10 2007, 20:40) Да отку...   Jul 10 2007, 13:14
|- - defunct   Цитата(prottoss @ Jul 10 2007, 16:14) Я н...   Jul 10 2007, 13:19
||- - prottoss   Цитата(defunct @ Jul 10 2007, 21:19) Это ...   Jul 10 2007, 13:31
||- - defunct   Цитата(prottoss @ Jul 10 2007, 16:31) Да ...   Jul 10 2007, 14:20
||- - prottoss   Цитата(defunct @ Jul 10 2007, 22:20) В те...   Jul 10 2007, 15:05
||- - defunct   Цитата(prottoss @ Jul 10 2007, 18:05) Из...   Jul 10 2007, 16:09
||- - =GM=   Цитата(prottoss @ Jul 10 2007, 14:05) ДА ...   Jul 10 2007, 16:13
||- - prottoss   Цитата(=GM= @ Jul 11 2007, 00:13) А як же...   Jul 10 2007, 16:15
||- - defunct   Цитата(=GM= @ Jul 10 2007, 19:13) Не сбра...   Jul 10 2007, 16:21
||- - prottoss   Цитата(=GM= @ Jul 11 2007, 00:13) Не сбра...   Jul 10 2007, 16:38
||- - =GM=   Цитата(prottoss @ Jul 10 2007, 16:38) Бли...   Jul 10 2007, 22:35
||- - prottoss   Цитата(=GM= @ Jul 11 2007, 06:35) Здравст...   Jul 11 2007, 11:06
||- - SasaVitebsk   Цитата(=GM= @ Jul 11 2007, 01:35) Ну тепе...   Jul 12 2007, 22:30
||- - defunct   Цитата(SasaVitebsk @ Jul 13 2007, 01:30) ...   Jul 12 2007, 22:40
||- - =GM=   Цитата(SasaVitebsk @ Jul 12 2007, 21:30) ...   Jul 13 2007, 10:31
||- - SasaVitebsk   Цитата(=GM= @ Jul 13 2007, 13:31) Саша, у...   Jul 13 2007, 16:18
|- - =GM=   Цитата(prottoss @ Jul 10 2007, 12:14) Ну ...   Jul 10 2007, 14:55
|- - =GM=   Цитата(prottoss @ Jul 10 2007, 12:14) Ну ...   Jul 10 2007, 15:10
|- - prottoss   Цитата(=GM= @ Jul 10 2007, 23:10) Про изв...   Jul 10 2007, 15:15
- - defunct   Цитата(AndryG @ Jul 10 2007, 08:28) Вот с...   Jul 10 2007, 09:59
- - defunct   ЦитатаНо у парня прерывание не по совпадению с OCR...   Jul 10 2007, 12:54
- - Elegorod   ЦитатаПосмотрите же даташит на t2313 наконец. Всем...   Jul 10 2007, 14:17
|- - prottoss   Цитата(Elegorod @ Jul 10 2007, 22:17) Все...   Jul 10 2007, 14:22
|- - defunct   Цитата(Elegorod @ Jul 10 2007, 17:17) В к...   Jul 10 2007, 14:28
|- - prottoss   Цитата(defunct @ Jul 10 2007, 22:28) Это ...   Jul 10 2007, 14:33
|- - defunct   Цитата(prottoss @ Jul 10 2007, 17:33) Oxo...   Jul 10 2007, 14:38
- - Elegorod   Тогда и в тексте описания ошибки, и во всем раздел...   Jul 10 2007, 14:34
- - kada   Вполне возможно, что дело в кварце. Столкнулись с ...   Jul 10 2007, 14:39
- - AndryG   Почитал я ветку ... и понял, что сейчас мне на оре...   Jul 11 2007, 05:25
- - олесь   Все верно,если на кварце 8.000, то частотомер, нап...   Jul 12 2007, 19:31
|- - singlskv   Цитата(олесь @ Jul 12 2007, 23:31) Все ве...   Jul 12 2007, 20:59
|- - prottoss   Цитата(=GM= @ Jul 14 2007, 00:33) Ну хотя...   Jul 13 2007, 16:45
|- - =GM=   Цитата(prottoss @ Jul 13 2007, 15:45) Это...   Jul 13 2007, 21:38
|- - defunct   Цитата(=GM= @ Jul 14 2007, 00:38) 2) Где ...   Jul 13 2007, 22:27
|- - =GM=   Цитата(defunct @ Jul 13 2007, 22:27) Реги...   Jul 14 2007, 21:03
|- - defunct   Цитата(=GM= @ Jul 15 2007, 00:03) Ерунду ...   Jul 14 2007, 22:39
|- - =GM=   To defunct. Кажется понял наконец корень всех затр...   Jul 15 2007, 10:45
|- - prottoss   Цитата(=GM= @ Jul 15 2007, 18:45) то не в...   Jul 15 2007, 12:33
|- - =GM=   Цитата(prottoss @ Jul 15 2007, 12:33) При...   Jul 15 2007, 13:34
|- - defunct   Цитата(=GM= @ Jul 15 2007, 16:34) Слова в...   Jul 15 2007, 15:53
|- - =GM=   Цитата(defunct @ Jul 15 2007, 15:53) Пере...   Jul 15 2007, 16:43
|- - defunct   Цитата(=GM= @ Jul 15 2007, 19:43) Перечит...   Jul 15 2007, 22:04
- - GetSmart   Цитата(=GM=)Саша, у меня пара вопросов к вам, не з...   Jul 13 2007, 13:53


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

 


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


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