Предыдущая Следующая

Для определения високосного года, в модуле RTC производится простое побитное сравнение с целью определить, являются ли два самых младших бита счетчика лет нулевыми. Если результат сравнения логически истинный (true), то модуль RTC рассматривает текущий год как високосный. Таким образом, модуль RTC считает все годы, значение которых делится на 4, високосными. Этот алгоритм корректен для всех значений лет от 1901 до 2099 годов, однако он неверен для 2100 года, который не является високосным. Единственное следствие факта определения високосного года модулем RTC заключается в том, что модуль должен изменить длительность месяца февраля для счетчиков месяца, дней месяца и лет.

18.2.8. Группа сигнальных регистров

Сигнальные регистры перечислены в Табл. 18.13. Значения этих регистров сравниваются со значениями счетчиков времени. При совпадении значения любого из незамаскированных сигнальных регистров со значением соответствующего счетчика времени будет сгенерировано прерывание. Прерывание будет сброшено при записи логической единицы в соответствующий бит регистра местоположения прерывания ILR[1].

Таблица 18.13. Группа сигнальных регистров модуля RTC

Адрес

Название

Размер

Описание

Доступ

0хЕ0024060

ALSEC

6

Сигнальное значение для секунд

R/W

0хЕ0024064

ALMIN

6

Сигнальное значение для минут

R/W

0хЕ0024068

ALHOUR

5

Сигнальное значение для часов

R/W

0хЕ002406С

ALDOM

5

Сигнальное значение для дней месяца

R/W

0хЕ0024070

ALDOW

3

Сигнальное значение для дней недели

R/W

0хЕ0024074

ALDOY

9

Сигнальное значение для дней года

R/W

0хЕ0024078

ALMON

4

Сигнальное значение для месяцев

R/W

0хЕ002407С

ALYEAR

12

Сигнальное значение для лет

R/W

18.3. Рекомендации по использованию модуля RTC

Так как модуль RTC тактируется сигналом VPB (pclk), то любой перерыв в последовательности этих тактовых импульсов приведет к дрейфу отсчитываемого модулем RTC времени. Таким образом, в результате, текущие «показания» регистров модуля RTC могут отличаться от реального времени.

В микроконтроллерах LPC2000 нет никаких встроенных средств, чтобы сохранить текущее состояние RTC в момент отключения напряжения питания или обеспечивать отсчет времени в случае перерыва в работе или изменения источника тактовой частоты. Отключение питания устройства приведет к потере содержимого всех регистров модуля RTC. Переход в режим Power Down вызовет паузу в счете времени. Изменение базовой (опорной) частоты модуля RTC во время системных операций (реконфигурации ФАПЧ, таймера VPB или предделителя модуля RTC) приведет к возникновению накопленной ошибки счета времени.

18.4. Делитель опорной частоты (предделитель) RTC

Делитель опорной частоты (предделитель) RTC позволяет получить частоту 32.768 кГц из любой периферийной тактовой частоты, большей или равной 65.536 кГц (2 х 32.768 кГц). Это дает возможность модулю RTC всегда работать в надлежащем темпе вне зависимости от периферийной тактовой частоты. В основном, предделитель делит периферийную тактовую частоту (pclk) на значение, которое состоит из целой части и дробной части. Результатом деления является не непрерывная последовательность импульсов с постоянной частотой, а последовательность с переменной частотой, у которой в периоде количество периодов pclk непостоянно. Однако полное количество импульсов результирующей частоты за секунду всегда будет равно 32768.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_209.html on line 310

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_209.html on line 310

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_209.html on line 310