Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 18.03.2011, 19:16   #11
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

А этапы инициализации у меня правильные??? Последовательность не важна??? Или сначала установить время, а потом только вкл. (CH=0) ?

P.S. Я пока кварц из часов припаяю.
Реклама:
mr_smit вне форума  
Непрочитано 18.03.2011, 19:17   #12
baiderin
Почётный гражданин KAZUS.RU
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,727
Сказал спасибо: 2,428
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

ПОмню, пытался завести эту 1307. Там толи задержка при пуске где-то нужна, то ли что.Не помню уже. С бубном, но завелась.
baiderin вне форума  
Непрочитано 18.03.2011, 19:18   #13
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

Сообщение от baiderin Посмотреть сообщение
ПОмню, пытался завести эту 1307. Там толи задержка при пуске где-то нужна, то ли что.Не помню уже. С бубном, но завелась.
Вспоминайте, очень надо
mr_smit вне форума  
Непрочитано 18.03.2011, 19:53   #14
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
Вопрос Re: DS1307 стоят. Хотя CH = 0. Почему???

Поставил кварц из часов. Всё заработало.

Сделал выводы:
1. Если микросхема (кварц) только что из магазина, это не значит что она рабочая...
2. Не надо паять в 12 часов ночи, а потом с утра вопросы на форумах задавать (про осциллограф я вчера не подумал).

И последний вопрос. Где лучше опрашивать DS1307 ? По таймеру или в основном цикле? Просто не хочется дополнительно нагружать основной цикл этим:
Код:
rtc_get_time(&hour,&min,&sec); //считать время
rtc_get_date(&day,&month,&year); //считать дату
min = bcd2bin(min);
hour = bcd2bin(hour);
...
Пока преобразует... А приэтом за пультом ДУ надо ещё следить. К тому же год, месяц, дату достаточно вызвать 1 раз в сутки. У меня ATMega8. Заняты все внешние прерывания (TSOP и синхронизация с сетью) и 2 таймера. Остался последний таймер. Что если настроить его на 10 мс, ввести переменную time_status. По переполнению таймера увеличивать её на 1. И в основном цикле проверять если ›6000 (60 сек) то запрашивать время. Ну как то так:
Код:
int time_status = 0;
...
// Timer 2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
time_status++;
}
...
while (1) {
  ...
  if (time_status › 6000) {
    time_status = 0;
    rtc_get_time(&hour,&min,&sec); //считать время
    min = bcd2bin(min);
    hour = bcd2bin(hour);
    ... // вывод на ЖКИ
    if (hour == 0) {
      rtc_get_date(&day,&month,&year); //считать дату
      ... // вывод на ЖКИ
    }
  }
  ...
}
Насколько оправдан такой подход?

Последний раз редактировалось mr_smit; 18.03.2011 в 20:17.
mr_smit вне форума  
Непрочитано 18.03.2011, 20:04   #15
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

Такой подход вообще не оправдан, равно как и применение этой пустой меги. Ставьте проц с внешним генератором, запускайте RTC нем и все у вас получится. Я год назад купил подобные часы, если не эти же самые. Так до сих пор не применил нигде. Глупо как-то вешать отдельно такую лабуду. Вот когда у вас три-пять устройств на i2c, тогда еще можно. Даже с точки зрения экономии электричества совершенно не оправдано.
Easyrider83 вне форума  
Непрочитано 18.03.2011, 20:04   #16
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

Что делает TIMER1 понятно. Для чего используется TIMER0?
omercury вне форума  
Непрочитано 18.03.2011, 20:21   #17
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

Сообщение от omercury Посмотреть сообщение
Что делает TIMER1 понятно. Для чего используется TIMER0?
TIMER0 - отсчет интервалов для приема команд от пульта ДУ.
TIMER1 - открытие симистора и формирование импульса для открытия

Так всё же. Как быть? Чтобы не гонять постоянное считывание времени в основном цикле?

P.S.
И ещё. Сейчас время/дата выводятся в формате, например, 5 часов 7 минут. Как вывести 05 часов 07 минут?
Код:
char cnt[];
...
sprintf(cnt,"%u:%u:%u",hour,min,sec);           // преобразование времени в строку
put_string(20, 90,cnt, 0x07E0, 2);  // выводим на экран
Как изменить форматирование sprintf ?
mr_smit вне форума  
Непрочитано 18.03.2011, 20:23   #18
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

Так получится?
PHP код:
sprintf(cnt,"%2u:%2u:%2u",hour,min,sec); 
omercury вне форума  
Непрочитано 18.03.2011, 20:49   #19
mr_smit
Временная регистрация
 
Аватар для mr_smit
 
Регистрация: 14.09.2009
Сообщений: 87
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
mr_smit на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

Сообщение от omercury Посмотреть сообщение
Так получится?
PHP код:
sprintf(cnt,"%2u:%2u:%2u",hour,min,sec); 
Вместо нолика получилось пустое место (перед двойкой)
Миниатюры:
Нажмите на изображение для увеличения
Название: display.jpg
Просмотров: 38
Размер:	327.1 Кб
ID:	19926  

Последний раз редактировалось mr_smit; 18.03.2011 в 21:05.
mr_smit вне форума  
Непрочитано 18.03.2011, 21:10   #20
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: DS1307 стоят. Хотя CH = 0. Почему???

Теперь осталось найти, какой символ поставить перед %...($ - hex и т.д.)
omercury вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему диммер на симисторе не продляет, а укорачивает жизнь лампам накаливания? Alex9797 Источники питания и свет 106 21.05.2016 01:54
Есть схема, имеются простые вопросы: почему так, а не этак? already_over Электроника - это просто 4 17.11.2010 22:27
ATmega64 и DS1307 sersne Микроконтроллеры, АЦП, память и т.д 1 08.06.2010 21:54
RTC DS1307, контроллер, LCD... какая идеология работы? chapa Микроконтроллеры, АЦП, память и т.д 4 24.11.2009 18:28


Часовой пояс GMT +4, время: 17:19.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot