|
|
|
|
Я в том смысле, что я не задаю день недели вручную и поэтому он начинает считать от дня подачи питания, а не согласно установленной дате. |
|
|
Сергей К: Я в том смысле, что я не задаю день недели вручную и поэтому он начинает считать от дня подачи питания, а не согласно установленной дате. Понятно(теперь наверное я понял) - т.е. нужна "автоматическая" коррекция, т.е. меняем день недели - должна меняться дата(день месяца), месяц и год также само и соответсвенно и автоматически внутри м/с. Но это нужно же иметь внутри отдельный небольшой процессор для такой корректировки или иметь какое-то масочное ПЗУ внутри через которое как бы "фильтруются" все показания в м/с и соответственно меняются. Но этого нет и видимо это по причине чрезмерного усложнения конструкции и вероятного увеличения потребления м/с. Тут надо уже самому об этом "заботиться"(т.е. внешний процессор это и должен делать). Кстати неплохая идея - может доработать так свои часы-будильник-термометр? У меня своя "разработка" на PIC16F876A? DS1307, D18S20 и ЖКИ. Кстати будильники на каждый день недели разные у меня. Код для DS1820 у меня сооптимизирован как считаю, в отличие от того, что вижу в нете и могу привести. Показания с DS1820 считываю тоже раз в 10 секунд!(как-то сам "допер", что чаще и не надо особо). В общем вот так. Файл тот кстати, у меня так и не прикрепился почему-то. |
|
|
Только заметил тему. Сергей К: 1. День недели нужно вручную устанавливать? Микросхема не умеет его сама посчитать? День недели, пон. вт. ср. ..., задается в ручную, автоматического расчета в DS1307 нет. В прочем как и автоматического перехода зима/лето. PS: А в природе существуют мс. RTC на подобие DS1307 в которых реализован полноценный календарь + переход зима/лето и т.п.? |
|
|
AlexAlcoa: А в природе существуют мс. RTC на подобие DS1307 в которых реализован полноценный календарь + переход зима/лето и т.п.? Знаю, что с "automatic leap year compensation" есть(специально оставил так фразу на англ. и можно использовать для поиска). Может среди них искать? Но ИМХО не будет таких. Впрочем не знаю.
|
|
|
AleksBak: PIC16F876A? DS1307, D18S20 и ЖКИ у меня PIC16F887, а остальное такое же AlexAlcoa: задается в ручную, автоматического расчета в DS1307 нет Спасибо. Это меня и интересовало. Буду думать над автоматическим расчетом. |
|
|
Сергей К: Буду думать над автоматическим расчетом Спасибо за наводку на алгоритм. ------ А кто нибудь уже обсчитал формулу для дня недели? У меня получаются результаты намного больше 0-7, считал в exel-e. Что означает выражение "ЗАЛИШОК 7"
|
|
|
Залишок (укр) - остаток. |
|
|
петр1: Залишок (укр) - остаток. Спс. Странно откуда там возьмется остаток, если все вычисления целочисленные "Всі ділення цілочисельні" или я ошибаюсь? Для примера файл exel для обсчета дня недели, но результат не понятный. 171082.xls |
|
|
Не знаю пока. Может больше 7и? Надо внедряться в проект. |
|
|
На русской вике больше информации есть, вот оттуда: Реализация на C: /* ** taviscaron (c) */ struct struct_date { char day; char month; short year; }; char what_day(const struct struct_date * const date) { int a = (14 - date->month) / 12; int y = date->year - a; int m = date->month + 12 * a - 2; return (7000 + (date->day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
|
|
|
|
|