Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 30 февраля 2016 года
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
evgen2
Пацаны, а у меня RTC в lpc1768 говорит, что сейчас 30 февраля
(MON - от 0 до 11)

Скриншот прилагаетсяНажмите для просмотра прикрепленного файла
haker_fox
bb-offtopic.gif Не удержался. Но у нас на входе в здание часики показывают 30.02))) Наверно в них тоже LPC1768 поставили)))
alag57
Цитата(evgen2 @ Mar 1 2016, 03:52) *
Пацаны, а у меня RTC в lpc1768 говорит, что сейчас 30 февраля
(MON - от 0 до 11)

Я вижу 30 января. MON от 1 до 12.
evgen2
Цитата(alag57 @ Mar 1 2016, 07:56) *
Я вижу 30 января. MON от 1 до 12.


уф...действительно. Какие-то вражеские шпиёны поставили

Код
  
  struct tm tm1;

   tm1.tm_sec  = LPC_RTC->SEC;   /* seconds after the minute, 0 to 60 (0 - 60 allows for the occasional leap second) */
   tm1.tm_min    = LPC_RTC->MIN;   /* minutes after the hour, 0 to 59 */
   tm1.tm_hour  = LPC_RTC->HOUR; /* hours since midnight, 0 to 23 */
   tm1.tm_mday = LPC_RTC->DOM;   /* day of the month, 1 to 31 */
   tm1.tm_mon  = LPC_RTC->MONTH;/* months since January, 0 to 11 */
   tm1.tm_year  = LPC_RTC->YEAR-1900;/* years since 1900 */


и как-то оно с этим жило. (И в доке на RTC тоже было написано 0 to 11, ночью я сам видел, зуб даю!)

Для тех, кто не заметил: tm1.tm_mon = LPC_RTC->MONTH;

tm1.tm_mon - months since January, 0 to 11
MONTH - Month value in the range of 1 to 12
Obam
Цитата(evgen2 @ Mar 1 2016, 12:38) *
и как-то оно с этим жило. (И в доке на RTC тоже было написано 0 to 11, ночью я сам видел, зуб даю!)

Нажмите для просмотра прикрепленного файла

Проставился ;-/
Зуб - гони!
evgen2
В 1:52 ночи там точно будет 0-11 !

А вообще это конечно подлянка - почти все регистры делать аналогичные полям аналогичной структуры, без которой никак не обойтись, есть нужно выполнять манипуляции со временем типа задать время "через сутки"...
KnightIgor
Цитата(haker_fox @ Mar 1 2016, 01:25) *
bb-offtopic.gif Не удержался. Но у нас на входе в здание часики показывают 30.02))) Наверно в них тоже LPC1768 поставили)))

В субботу купил сметану. Срок годности указан 30.02. Область применения LPC явно широкая...
Alechek
Цитата(evgen2 @ Mar 1 2016, 13:38) *
уф...действительно. Какие-то вражеские шпиёны поставили
Код
  
   tm1.tm_sec  = LPC_RTC->SEC;   /* seconds after the minute, 0 to 60
.....
   tm1.tm_year  = LPC_RTC->YEAR-1900;/* years since 1900 */

шпиёнам за такое руки надо пообрывать!
Если, конечно, не хотите оказаться в будущем, минимум на минуту, максимум, на год.
evgen2
Цитата(KnightIgor @ Mar 1 2016, 15:11) *
В субботу купил сметану. Срок годности указан 30.02. Область применения LPC явно широкая...

Что-то мне подсказывает, что tm1.tm_mon = LPC_RTC->MONTH; не только с LPC используется

Цитата(Alechek @ Mar 1 2016, 22:07) *
шпиёнам за такое руки надо пообрывать!
Если, конечно, не хотите оказаться в будущем, минимум на минуту, максимум, на год.


э, а как иначе?
Alechek
Примерно так
Код
  while(1)
  {
    SystemTime.tm_sec  = RTCREG_SEC;
    SystemTime.tm_min  = RTCREG_MIN;
    SystemTime.tm_hour = RTCREG_HOUR;
    SystemTime.tm_mday = RTCREG_DOM;
    SystemTime.tm_mon  = RTCREG_MONTH - 1;
    SystemTime.tm_year = RTCREG_YEAR - 1900;
    SystemTime.tm_wday = RTCREG_DOW;
    SystemTime.tm_yday = RTCREG_DOY;
    SystemTime.tm_isdst = -1;
    // Check for time and data change
    if(RTCREG_SEC == SystemTime.tm_sec)
      break;
  }
evgen2
Цитата(Alechek @ Mar 2 2016, 09:49) *
Примерно так


Спасибо, что напомнили. Как-то RTC интенсивно не использовал до этого, особо не заморачивался с корректностью времени. Кстати, и при установке времени нужно аналогично поступать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.