|
DS1307 и день недели |
|
|
|
May 5 2008, 18:47
|

Участник

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378

|
Не получается вытащить номер дня недели из RTC DS1307. Всё остальное вытаскивается нормально, а день недели всё время 2. Вот функция, отвечающая за это: Код void rtc_get_time(rtc_type *rtc_var) { i2c_start(); i2c_write_addr(DS1307_ADDR | WR); i2c_write(0x00); i2c_start(); i2c_write_addr(DS1307_ADDR | RD);
rtc_var->seconds = bcd2dec(i2c_read(ACK) & 0x7F); rtc_var->minutes = bcd2dec(i2c_read(ACK)); rtc_var->hours = bcd2dec(i2c_read(ACK) & 0x3F);
rtc_var->weekday = i2c_read(ACK) & 0x07;
rtc_var->day = bcd2dec(i2c_read(ACK)); rtc_var->month = bcd2dec(i2c_read(ACK)); rtc_var->year = bcd2dec(i2c_read(NOT_ACK)) + 2002;
i2c_stop(); return; }
|
|
|
|
|
 |
Ответов
|
May 9 2008, 19:31
|

Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342

|
Цитата(TarasG @ May 6 2008, 15:24)  Кстати, ещё интересно, есть ли такая функция в PCF8583 от Philips? Нету. Там, насколько я помню, еще хуже: под год выделено 2 бита, т.е. только 4-годичный цикл отслеживается. Цитата(kolobok0 @ May 6 2008, 18:44)  +1 бОльшая проблема будет когда будет 2070 год...от тогда проблема будет..а пока...фигня енто всё... А что будет в 2070? Вот в 2038 эпоха UNIX-а закончится.
--------------------
Gray©at
|
|
|
|
|
May 9 2008, 20:08
|

Участник

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378

|
Цитата(GrayCat @ May 9 2008, 22:31)  Нету. Там, насколько я помню, еще хуже: под год выделено 2 бита, т.е. только 4-годичный цикл отслеживается. Вообще-то я имел ввиду вычисление дня недели. А 4-годичный цикл хоть и не очень приятно, но терпимо Цитата(GrayCat @ May 9 2008, 22:31)  Вот в 2038 эпоха UNIX-а закончится. Ну это спорный вопрос. Ничего не мешает к тому времени перевести время на 64-битное число. Тогда эта дата отодвинется на несколько миллиардов лет  Не знаю, но в 64-битных система возможно так уже сделано
Сообщение отредактировал TarasG - May 9 2008, 20:09
|
|
|
|
|
May 10 2008, 08:18
|

Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342

|
Цитата(TarasG @ May 9 2008, 23:08)  Вообще-то я имел ввиду вычисление дня недели. Я тоже. Т.к. PCF8583 микросхема еще более старая чем Даллас 1307, то фичей в ней меньше, а потребление от батарейки больше. Смысла ее использовать вообще нет. Цитата Ну это спорный вопрос. Ничего не мешает к тому времени перевести время на 64-битное число. Тогда эта дата отодвинется на несколько миллиардов лет  Не знаю, но в 64-битных система возможно так уже сделано  Так сделано даже в хорошо продуманных изначально 32-бит системах. Например, в QNX есть в документации такая строка: "Внимание! Этот 64-битный счетчик наносекунд переполнится в 2483 году! Если вы планируете использование ваших программ после 2483, обязательно предусмотрите соответствующие проверки!"
--------------------
Gray©at
|
|
|
|
|
May 10 2008, 09:15
|

Участник

Группа: Новичок
Сообщений: 72
Регистрация: 25-02-08
Пользователь №: 35 378

|
Цитата(GrayCat @ May 10 2008, 11:18)  Я тоже. Т.к. PCF8583 микросхема еще более старая чем Даллас 1307, то фичей в ней меньше, а потребление от батарейки больше. Смысла ее использовать вообще нет. А мне из даташита показалось, что в неё как раз больше функциональность. Например, сотые доли секунды, таймеры и т.д. В моём случае это, конечно, не нужно. Но в других может и понадобится... Цитата(GrayCat @ May 10 2008, 11:18)  Значит проблема разрешима  Думаю, когда реально припечёт - за пару лет до даты Х - быстро выйдут соответствующие патчи и проблема будет решена
|
|
|
|
Сообщений в этой теме
TarasG DS1307 и день недели May 5 2008, 18:47 Stanislav_S Вот моя функция все прекрасно читает
void RTC_GET_... May 5 2008, 19:15 TarasG А правда, что день недели нужно выставлять при ини... May 5 2008, 19:36 aaarrr День недели автоматом не ставится, это просто счет... May 5 2008, 19:50 defunct Цитата(aaarrr @ May 5 2008, 22:50) 0, 4, ... May 5 2008, 20:01  aaarrr Цитата(defunct @ May 6 2008, 00:01) Есть ... May 5 2008, 20:28  kolobok0 Цитата(defunct @ May 6 2008, 00:01) .. А ... May 6 2008, 15:44 TarasG Цитата(aaarrr @ May 5 2008, 22:50) День н... May 5 2008, 20:44  aaarrr Цитата(TarasG @ May 6 2008, 00:44) Вообще... May 5 2008, 20:54   TarasG Цитата(aaarrr @ May 5 2008, 23:54) Не буд... May 5 2008, 21:02    aaarrr Цитата(TarasG @ May 6 2008, 01:02) 2000 т... May 5 2008, 21:04     TarasG Цитата(aaarrr @ May 6 2008, 00:04) 2000 д... May 5 2008, 21:10      aaarrr Цитата(TarasG @ May 6 2008, 01:10) А я ду... May 5 2008, 21:12     TarasG Цитата(aaarrr @ May 6 2008, 00:04) Нет, н... May 6 2008, 10:15 TarasG Ещё такой вопрос: зачем в этой микросхеме нужны ре... May 5 2008, 21:33 Stanislav_S Цитата(TarasG @ May 6 2008, 02:33) Ещё та... May 5 2008, 21:38 aaarrr Да, все правильно. May 6 2008, 10:17 ILYAUL Дополнительный материал.
Таблицы я вставил по текс... May 6 2008, 10:49 TarasG Цитата(ILYAUL @ May 6 2008, 13:49) Дополн... May 6 2008, 11:14  ILYAUL Цитата(TarasG @ May 6 2008, 15:14) Так эт... May 6 2008, 12:07 TarasG К сожалению, самого главного в 1337 нет (как и в 1... May 6 2008, 12:24 arttab Извините что не в тему, но по 1307.
если я не дел... May 6 2008, 13:42 TarasG Цитата(arttab @ May 6 2008, 16:42) Извини... May 6 2008, 14:05 ILYAUL Я считываю по прерыванию от DS каждую секунду , вр... May 6 2008, 14:45 TarasG Цитата(ILYAUL @ May 6 2008, 17:45) Я счит... May 6 2008, 15:43  ILYAUL Цитата(TarasG @ May 6 2008, 19:43) Я тоже... May 6 2008, 16:44   TarasG Цитата(ILYAUL @ May 6 2008, 19:44) Вот ту... May 6 2008, 17:20 arttab я паузу в 9000 нопов на 8MHz ставил после выставле... May 7 2008, 14:04 TarasG Цитата(arttab)//start
TWCR=(1<<TWINT)|(1... May 8 2008, 08:41 arttab это проба работы с ds1307, а не готовая часть прог... May 9 2008, 04:12 TarasG Цитата(arttab @ May 9 2008, 07:12) Кстати... May 9 2008, 10:15 arttab ЦитатаА зачем? Ведь если TWCR = 0xFF, то и бит TWI... May 11 2008, 03:53 TarasG По-моему, задержка там нужна не после выставления ... May 11 2008, 09:07 ILYAUL Цитата(TarasG @ May 11 2008, 13:07) По-мо... May 11 2008, 13:50 arttab про что и речь. надо ждать готовности twi. о готов... May 11 2008, 13:13 zheka Господа, пытаюсь прочесть день недели - все время ... Apr 8 2011, 20:12 rx3apf Цитата(zheka @ Apr 9 2011, 00:12) А вообщ... Apr 8 2011, 20:24 aaarrr Не рассчитывает - это просто счетчик. Apr 8 2011, 20:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|