Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
30.12.2011, 15:57
|
|
Временная регистрация
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Помогите настроить таймер в Atmega
В Atmega32 таймер2 насстроен на работу от внешнего часового кварца 32768Гц, Кдел.=1, прерывание по переполнению, на выходе имеем 128Гц.
Выставил:
Код:
|
ASSR=0x08;
TCCR2=0x01;
TCNT2=0x00;
OCR2=0x00;
TIMSK=0b01000010; |
Мне нужно подкорректировать частоту на выходе таймера. Изменяю начальный код в регистре TCNT2, ничего не изменяется.
Пробовал выставить переполнение по совпадению:
Код:
|
ASSR=0x08;
TCCR2=0x09;
TCNT2=0x00;
OCR2=0x7F;
TIMSK=0b10000010; |
тогда не выходит на счетный режим.
Может еще что-то надо менять?
|
|
|
|
30.12.2011, 18:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
a. Write a value to TCCR2x, TCNT2, or OCR2x.
b. Wait until the corresponding Update Busy Flag in ASSR returns to zero.
c. Enter Power-save or ADC Noise Reduction mode.
Только не спрашивайте, откуда я это взял. Военная тайна
|
|
|
|
30.12.2011, 21:22
|
|
Временная регистрация
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
niXto,
Это я читал и на русском языке, только не знаю, как применить в программе.
В программировании я новичок!
Есть программа для часы/будильник/метеостанция. Есть коррекция хода часов, но шаг коррекции 1/128Гц. Это много, часы или сильно отстают или спешат. Хотел подправить корректировкой счетчика таймера, но не знаю как это программно сделать. Программа написана в CodeVisionAVR, исходный код:
|
|
|
|
30.12.2011, 22:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
Dimitrij,
а каков уход за сутки/несколько суток? наблюдали?
может надо делать коррекцию раз в сутки?
или образцовую частоту ловить из эфира, DCF77, например, или 66,(6) и по ней вести отсчет?
|
|
|
|
30.12.2011, 22:51
|
|
Временная регистрация
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
Сообщение от jump
|
а каков уход за сутки/несколько суток?
|
Точно не засекал, но отстают на 3секунды в сутки.
|
|
|
|
30.12.2011, 23:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
Чтобы скорректировать 3 секунды в сутки у Вас шаг коррекции должен быть 1/28800 Гц. Так, что прислушайтесь к совету jumpа - раз в сутки.
P.S. Можно еще выкидывать/добавлять единицу в счетчике переполнений каждые 225 секунд (28800/128=225).
Последний раз редактировалось alvadep; 30.12.2011 в 23:32.
|
|
|
|
30.12.2011, 23:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
Dimitrij,
сделайте программную коррекцию с ручной установкой на -/+ 10с по окончании суток. кварц стареет, температура меняется или питание - прошивку менять каждый раз?
|
|
|
|
31.12.2011, 07:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
У меня цифровая подстройка хода срабатывает раз в 52 секунды. Точность достигается ±0,05 с/сутки. При стабильных напряжении и температуре. Если делать подстройку раз в сутки, часы будут гулять в зависимости от времени и нужно будет пометить в какое время они идут точно, чтобы подстроить ход еще точней
После любой записи в регистры асинхронного таймера нужно дождаться установки соответствующего этому регистру флага прерывания, обработать его или сбросить, и только потом валиться в спячку
|
|
|
|
31.12.2011, 13:11
|
|
Временная регистрация
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
Re: Помогите настроить таймер в Atmega
Может я пошел не по тому пути. Где-то в инете вычитал, что суточный уход времени с кварцем ±2сек в сутки. Поэтому, я так думаю, нужно набрать статистику хотя бы за месяц, а потом что-то решать. Ручная коррекция в программе предусмотрена, а по поводу асинхронного таймера заморочки, опять же в инете многие с этим сталкиваются.
Всем большое спасибо, с наступающим Новым Годом!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Помогите настроить АЦП в Atmega32
|
sergx1300 |
Микроконтроллеры, АЦП, память и т.д |
72 |
09.11.2010 00:28 |
ATmega 128 . Пытаюсь запустить таймер Т2...
|
home2010 |
Микроконтроллеры, АЦП, память и т.д |
7 |
31.03.2010 07:47 |
Помогите настроить програматор для PIC16F84A
|
Slava-martyn |
Микроконтроллеры, АЦП, память и т.д |
10 |
08.02.2009 17:16 |
Помогите настроить HI-TECH PICC18
|
maxNTF |
Микроконтроллеры, АЦП, память и т.д |
9 |
16.06.2008 14:26 |
Помогите настроить WinPic800
|
maxNTF |
Микроконтроллеры, АЦП, память и т.д |
8 |
12.03.2008 20:36 |
Часовой пояс GMT +4, время: 04:04.
|
|