Отстают часы на DS1307

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Отстают часы на DS1307

Сообщение Dimon49773 »

Всем привет!
Написал программу для часов с термометром на ATmega 16 в AVR Studio 4, и начал симулировать в Proteus 7.10.
После запуска часы заметно начинают отставать начиная с 2-х секунд. Отставания нарастает на глазах.
Вопрос: Виноват ли протеус в этом? или проблема в коде может быть?

Если это код прошу вас посмотреть мой код и показать если не трудно ...

Заранее благодарю!
Вложения
clock_ds1307.rar
(112.31 КБ) 249 скачиваний
Реклама
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: Отстают часы на DS1307

Сообщение shads »

Dimon49773 писал(а):После запуска часы заметно начинают отставать начиная с 2-х секунд. Отставания нарастает на глазах.
Вопрос: Виноват ли протеус в этом? или проблема в коде может быть?
А как там отображение секунд включить? я вижу только минуты.
Смотря еще с чем сравнивать, вообще то протеус намного медленнее реального времени отрабатывает, это нормально, так что в железе желательно смотреть.....
Реклама
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Отстают часы на DS1307

Сообщение Dimon49773 »

если при запуске программы в протеусе нажать правым кликом по DS1307 из контекстного меню можно вывести окошко где отображаются и секунды, так вот они и отстают от реального времени компьютера.
Прежде чем пробовать на железе хотелось бы убедится что код в порядке
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: Отстают часы на DS1307

Сообщение shads »

Dimon49773 писал(а):если при запуске программы в протеусе нажать правым кликом по DS1307 из контекстного меню можно вывести окошко где отображаются и секунды, так вот они и отстают от реального времени компьютера.
Прежде чем пробовать на железе хотелось бы убедится что код в порядке
А, ну дак это нормально..... вся система в протеусе (в т.ч. и DS1307) живет своей жизнью. Т.к. протеус не успевает симулировать систему в реальном времени, то и отсчет временем МС часов - тоже подгоняется под скорость симуляции.

Но заметил другую проблеммку, после запуска протеуса, индикатор часов показывает время, НО дальше изменений не происходит, т.е хотя время в DS1307 идет, но на индикаторе оно не обноаляется.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Отстают часы на DS1307

Сообщение Dimon49773 »

shads писал(а):Но заметил другую проблеммку, после запуска протеуса, индикатор часов показывает время, НО дальше изменений не происходит, т.е хотя время в DS1307 идет, но на индикаторе оно не обноаляется.
у меня обновляется, и точка моргает ... с этим проблем нет
Реклама
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Отстают часы на DS1307

Сообщение ChipKiller »

на Proteusе проверяют логику работу, а не тайминги реального времени. Переносите все на железо и если часы "убегают", то корректировку можно провести и программно - например раз в сутки изменять данные в DS1307.

PS. почитайте рекомендации в Datasheete на DS1307 по подключению кварца - в принципе уход за сутки не велик...
Реклама
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Отстают часы на DS1307

Сообщение Dimon49773 »

Вы меня успокоили, буду переводить на железо.
ChipKiller писал(а):корректировку можно провести и программно - например раз в сутки изменять данные в DS1307.
Насчёт корректировки я подумал завести на выход SOUT часов на таймер МК и проверять чтоб постоянно было 32768ГЦ, при отклонениях принимать меры, есть ли у кого такой опыт?
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Отстают часы на DS1307

Сообщение korsaj »

ChipKiller писал(а):на Proteusе проверяют логику работу, а не тайминги реального времени..
Не соглашусь с вами! У протеуса внизу бежит время, его показания соответствует реальному для устройства. Применяя всевозможные брекпоинты легко проверить время выполнения любого из событий.
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Отстают часы на DS1307

Сообщение IM1 »

Dimon49773 писал(а):Насчёт корректировки я подумал завести на выход SOUT часов на таймер МК и проверять чтоб постоянно было 32768ГЦ, при отклонениях принимать меры, есть ли у кого такой опыт?
:facepalm: :beer:
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: Отстают часы на DS1307

Сообщение shads »

Dimon49773 писал(а):Насчёт корректировки я подумал завести на выход SOUT часов на таймер МК и проверять чтоб постоянно было 32768ГЦ, при отклонениях принимать меры, есть ли у кого такой опыт?
Действительно, это будет прорыв в часостроении..... (получится - слепой ведет слепого, т.к. у контроллера кварц дает примерно такой же процент погрешности, как и часовой)

На сам деле (если плата разведена\собрана правильно) уход часов обычно небольшой, около сек\сутки, +-.....
(те часики которые я собирал на DS1307, все уходили в сутки менее чем на секунду, т.е. практически можно и без коррекции обойтись, просто подводить раз в месяц (ну если это конечно не тактирование GPS приемника.....))

Автокоррекция делается методом тыка - засекаете, на сколько убегает время за сутки (для большей точности можно недельку подождать, и разделить потом на 7) и делать раз в сутки программную коррекцию счетчиков часов, на это значение.

Можно еще как то там подбирать кондеры, но это наверное более морочно чем программно.
Аватара пользователя
Dimon49773
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср янв 18, 2012 16:33:58

Re: Отстают часы на DS1307

Сообщение Dimon49773 »

shads писал(а):Автокоррекция делается методом тыка - засекаете, на сколько убегает время за сутки (для большей точности можно недельку подождать, и разделить потом на 7) и делать раз в сутки программную коррекцию счетчиков часов, на это значение.
Можно еще как то там подбирать кондеры, но это наверное более морочно чем программно.
Да, отличная идея.. Благодарю за подсказки
Ответить

Вернуться в «Периферия»