Для определения високосного года, в модуле 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.
| Реклама: |
| импланты грудные цены |