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

 
 
> ATMega8L - RTC на внешнем 32768Hz сильно отстают..., В чём м.б. причина?
pr0m
сообщение Sep 27 2006, 12:09
Сообщение #1


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

Группа: Участник
Сообщений: 183
Регистрация: 22-06-05
Из: Таганрог
Пользователь №: 6 233



Порядка 1 сек в минуту. Иногда больше. Иногда меньше. Но совершенно недопустимые значения...
Тактовая ЦПУ - internal RC-oscillator 1MHz, на внешние ноги для кристалла - 32768Hz, по 22пФ внешние кондёры. Внутренние (CKOPT) отключены. Впрочем пробовал без внешних и включенный CKOPT с тем же результатом.
Главный цикл делает какую-то работку в пределах 6000 тактов (6 мс) - выводит на индикатор MT-10T7 дату-время, а затем уходит в PowerSafe - просыпается по прерыванию раз в секунду от Timer2. Обработчик прерывания совсем коротенький..... Инкремент long-а.

Пробовал менять кварц (др. производителя) - то же.

Может кто-нить поделится соображениями..? Я в прострации sad.gif

Ещё моментец - конструкция на одной плате с сетевым импульсничком на TNY264, подумал - может тот зловредно влияет - запитал внешним параметрическим. Пофиг.


--------------------
Правильно поставленный вопрос - половина ответа...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Sep 27 2006, 15:18
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(pr0m @ Sep 27 2006, 15:09) *
Порядка 1 сек в минуту. Иногда больше. Иногда меньше. Но совершенно недопустимые значения...
Тактовая ЦПУ - internal RC-oscillator 1MHz, на внешние ноги для кристалла - 32768Hz, по 22пФ внешние кондёры. Внутренние (CKOPT) отключены. Впрочем пробовал без внешних и включенный CKOPT с тем же результатом.
Обычно часовые кварцы расчитаны на меньшую нагрузочную емкость 6...12пф


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 27 2006, 15:43
Сообщение #3


дятел
*****

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



Цитата(Сергей Борщ @ Sep 27 2006, 19:18) *
Цитата(pr0m @ Sep 27 2006, 15:09) *

Порядка 1 сек в минуту. Иногда больше. Иногда меньше. Но совершенно недопустимые значения...
Тактовая ЦПУ - internal RC-oscillator 1MHz, на внешние ноги для кристалла - 32768Hz, по 22пФ внешние кондёры. Внутренние (CKOPT) отключены. Впрочем пробовал без внешних и включенный CKOPT с тем же результатом.
Обычно часовые кварцы расчитаны на меньшую нагрузочную емкость 6...12пф

Обычно часовые кварцы расчитаны на работу без нагрузочной емкости (внешней) smile.gif
Вот цитата из Datasheta на ATmega16:
Timer/Counter Oscillator
For AVR microcontrollers with Timer/Counter Oscillator pins (TOSC1 and TOSC2), the
crystal is connected directly between the pins. No external capacitors are needed. The
Oscillator is optimized for use with a 32.768 kHz watch crystal.



Цитата(pr0m @ Sep 27 2006, 17:09) *
Цитата(otrog @ Sep 27 2006, 16:30) *

Ошибка настройки таймера скорей всего.
Приведите исходник.


Думаю, причина не в этом... Однако привожу )

// Compare Match Interrupt
OCR2= 32; // Set Output Compare

Причина в этом.
OCR2 должно быть 31 !
Go to the top of the page
 
+Quote Post
pr0m
сообщение Sep 27 2006, 16:27
Сообщение #4


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

Группа: Участник
Сообщений: 183
Регистрация: 22-06-05
Из: Таганрог
Пользователь №: 6 233



Цитата(singlskv @ Sep 27 2006, 19:43) *
Цитата(Сергей Борщ @ Sep 27 2006, 19:18) *

Цитата(pr0m @ Sep 27 2006, 15:09) *

Порядка 1 сек в минуту. Иногда больше. Иногда меньше. Но совершенно недопустимые значения...
Тактовая ЦПУ - internal RC-oscillator 1MHz, на внешние ноги для кристалла - 32768Hz, по 22пФ внешние кондёры. Внутренние (CKOPT) отключены. Впрочем пробовал без внешних и включенный CKOPT с тем же результатом.
Обычно часовые кварцы расчитаны на меньшую нагрузочную емкость 6...12пф

Обычно часовые кварцы расчитаны на работу без нагрузочной емкости (внешней) smile.gif
Вот цитата из Datasheta на ATmega16:
Timer/Counter Oscillator
For AVR microcontrollers with Timer/Counter Oscillator pins (TOSC1 and TOSC2), the
crystal is connected directly between the pins. No external capacitors are needed. The
Oscillator is optimized for use with a 32.768 kHz watch crystal.



Цитата(pr0m @ Sep 27 2006, 17:09) *
Цитата(otrog @ Sep 27 2006, 16:30) *

Ошибка настройки таймера скорей всего.
Приведите исходник.


Думаю, причина не в этом... Однако привожу )

// Compare Match Interrupt
OCR2= 32; // Set Output Compare

Причина в этом.
OCR2 должно быть 31 !


Ура! Так и есть! Где тут книга благодарностей? cheers.gif
Кста, кусок кода инициализации почерпнул из Atmel-овского документа DOC2505.pdf AVR130: Setup and Use the AVR® Timers. Там именно 32. Репу до крови практически расчесал из-за них....

Спасибо всем ответившим, вопрос снят.


--------------------
Правильно поставленный вопрос - половина ответа...
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 27 2006, 17:20
Сообщение #5


Гуру
******

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



Цитата(pr0m @ Sep 27 2006, 22:27) *
Ура! Так и есть! Где тут книга благодарностей? cheers.gif
Кста, кусок кода инициализации почерпнул из Atmel-овского документа DOC2505.pdf AVR130: Setup and Use the AVR® Timers. Там именно 32. Репу до крови практически расчесал из-за них....

Спасибо всем ответившим, вопрос снят.

Нуль в счетчике таймера это не отсутствие чего-либо, а самое первое его состояние, которое длиться один такт. Так что 31 такт плюс 0-й такт это и будет 32 такта счета таймера.
Go to the top of the page
 
+Quote Post



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

 


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


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