Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Странное (?) поведение часиков DS1307. Нужен совет... (+)

Отправлено EagleB3 29 сентября 2009, г. 10:55


Делаю дивайс (ни разу не коммерческий...) на ATMEGA8535, среда - CVAVR.
По замыслу, основной рабочий цикл запускается по внешнему прерыванию от часиков DS1307 - один раз в секунду. Соответственно при старте дивайса часики инитятся (стандартной CVAVR'овской функцией) так, чтобы они стали выдавать 1Гц.
Дошел до железа. Дважды столкнулся с такой бедой: несмотря на мой инит, 1Гц я не получаю. Пока не впишу в часы какую-нибудь дату. Или не прочитаю какую-нибудь дату (или время? до конца не разобрался. Но одного инита не хватает). Оба раза проблема была при первом включении дивайса после длительного хранения без бекапной батарейки на часах (первый раз - сразу после сборки и второй раз - после недельного перерыва в экспериментах).

Не прояснит ли кто-нибудь такое поведение часиков?

В дивайсе будет бекапная батарейка для DS1307. Но коли такое поведение наблюлось, то, видимо, надо бы сделать антиграбли.

Мыслю так: при запуске буду считать часики не генерирующими (остановленными). Буду пытаться что-то от них прочитать прямо в ините. Далее буду дергать основной рабочий цикл от таймера один раз в секунду. В начале или в конце цикла буду пытаться договориться с часиками (что-то из них прочитать или что-то в них записать). Как только возникнет первое внешнее прерывание от часиков, буду считать часики запущенными и таймер остановлю - рабочий цикл будет дергаться в прерывании от часов. Ватчдог будет сбрасываться в прерывании от часиков и в прерывании от таймера; а ежели пррывание от ватчдога возникнет - то опять штатный инит: часики считаются остановленными, раз-в-секундный таймер будет запущен. Что скажете? Так хорошо? Или так плохо? Или так вообще не надо?


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите двойку на единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru