Отстают часы на DS1307
- Dimon49773
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Ср янв 18, 2012 16:33:58
Отстают часы на DS1307
Всем привет!
Написал программу для часов с термометром на ATmega 16 в AVR Studio 4, и начал симулировать в Proteus 7.10.
После запуска часы заметно начинают отставать начиная с 2-х секунд. Отставания нарастает на глазах.
Вопрос: Виноват ли протеус в этом? или проблема в коде может быть?
Если это код прошу вас посмотреть мой код и показать если не трудно ...
Заранее благодарю!
Написал программу для часов с термометром на ATmega 16 в AVR Studio 4, и начал симулировать в Proteus 7.10.
После запуска часы заметно начинают отставать начиная с 2-х секунд. Отставания нарастает на глазах.
Вопрос: Виноват ли протеус в этом? или проблема в коде может быть?
Если это код прошу вас посмотреть мой код и показать если не трудно ...
Заранее благодарю!
- Вложения
-
- clock_ds1307.rar
- (112.31 КБ) 249 скачиваний
- Реклама
Re: Отстают часы на DS1307
А как там отображение секунд включить? я вижу только минуты.Dimon49773 писал(а):После запуска часы заметно начинают отставать начиная с 2-х секунд. Отставания нарастает на глазах.
Вопрос: Виноват ли протеус в этом? или проблема в коде может быть?
Смотря еще с чем сравнивать, вообще то протеус намного медленнее реального времени отрабатывает, это нормально, так что в железе желательно смотреть.....
- Dimon49773
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Ср янв 18, 2012 16:33:58
Re: Отстают часы на DS1307
если при запуске программы в протеусе нажать правым кликом по DS1307 из контекстного меню можно вывести окошко где отображаются и секунды, так вот они и отстают от реального времени компьютера.
Прежде чем пробовать на железе хотелось бы убедится что код в порядке
Прежде чем пробовать на железе хотелось бы убедится что код в порядке
Re: Отстают часы на DS1307
А, ну дак это нормально..... вся система в протеусе (в т.ч. и DS1307) живет своей жизнью. Т.к. протеус не успевает симулировать систему в реальном времени, то и отсчет временем МС часов - тоже подгоняется под скорость симуляции.Dimon49773 писал(а):если при запуске программы в протеусе нажать правым кликом по DS1307 из контекстного меню можно вывести окошко где отображаются и секунды, так вот они и отстают от реального времени компьютера.
Прежде чем пробовать на железе хотелось бы убедится что код в порядке
Но заметил другую проблеммку, после запуска протеуса, индикатор часов показывает время, НО дальше изменений не происходит, т.е хотя время в DS1307 идет, но на индикаторе оно не обноаляется.
- Dimon49773
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Ср янв 18, 2012 16:33:58
Re: Отстают часы на DS1307
у меня обновляется, и точка моргает ... с этим проблем нетshads писал(а):Но заметил другую проблеммку, после запуска протеуса, индикатор часов показывает время, НО дальше изменений не происходит, т.е хотя время в DS1307 идет, но на индикаторе оно не обноаляется.
- Реклама
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Отстают часы на DS1307
на Proteusе проверяют логику работу, а не тайминги реального времени. Переносите все на железо и если часы "убегают", то корректировку можно провести и программно - например раз в сутки изменять данные в DS1307.
PS. почитайте рекомендации в Datasheete на DS1307 по подключению кварца - в принципе уход за сутки не велик...
PS. почитайте рекомендации в Datasheete на DS1307 по подключению кварца - в принципе уход за сутки не велик...
- Dimon49773
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Ср янв 18, 2012 16:33:58
Re: Отстают часы на DS1307
Вы меня успокоили, буду переводить на железо.
Насчёт корректировки я подумал завести на выход SOUT часов на таймер МК и проверять чтоб постоянно было 32768ГЦ, при отклонениях принимать меры, есть ли у кого такой опыт?ChipKiller писал(а):корректировку можно провести и программно - например раз в сутки изменять данные в DS1307.
Re: Отстают часы на DS1307
Не соглашусь с вами! У протеуса внизу бежит время, его показания соответствует реальному для устройства. Применяя всевозможные брекпоинты легко проверить время выполнения любого из событий.ChipKiller писал(а):на Proteusе проверяют логику работу, а не тайминги реального времени..
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: Отстают часы на DS1307
Dimon49773 писал(а):Насчёт корректировки я подумал завести на выход SOUT часов на таймер МК и проверять чтоб постоянно было 32768ГЦ, при отклонениях принимать меры, есть ли у кого такой опыт?
Re: Отстают часы на DS1307
Действительно, это будет прорыв в часостроении..... (получится - слепой ведет слепого, т.к. у контроллера кварц дает примерно такой же процент погрешности, как и часовой)Dimon49773 писал(а):Насчёт корректировки я подумал завести на выход SOUT часов на таймер МК и проверять чтоб постоянно было 32768ГЦ, при отклонениях принимать меры, есть ли у кого такой опыт?
На сам деле (если плата разведена\собрана правильно) уход часов обычно небольшой, около сек\сутки, +-.....
(те часики которые я собирал на DS1307, все уходили в сутки менее чем на секунду, т.е. практически можно и без коррекции обойтись, просто подводить раз в месяц (ну если это конечно не тактирование GPS приемника.....))
Автокоррекция делается методом тыка - засекаете, на сколько убегает время за сутки (для большей точности можно недельку подождать, и разделить потом на 7) и делать раз в сутки программную коррекцию счетчиков часов, на это значение.
Можно еще как то там подбирать кондеры, но это наверное более морочно чем программно.
- Dimon49773
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Ср янв 18, 2012 16:33:58
Re: Отстают часы на DS1307
Да, отличная идея.. Благодарю за подсказкиshads писал(а):Автокоррекция делается методом тыка - засекаете, на сколько убегает время за сутки (для большей точности можно недельку подождать, и разделить потом на 7) и делать раз в сутки программную коррекцию счетчиков часов, на это значение.
Можно еще как то там подбирать кондеры, но это наверное более морочно чем программно.


