17.3. Описание регистров
17.3.1 CTRL - регистр управления счетчиком реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x00 |
|
CTRL |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:3 - Res: резервные биты
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
- Биты 2:0 - PRESCALER[2:0]: коэффициент деления частоты синхронизации RTC
С помощью данных бит, в соответствии с таблицей 17.1, задается коэффициент деления частоты синхронизации счетчика реального времени .
Таблица 17.1. Коэффициент деления частоты синхронизации счетчика реального времени
PRESCALER[2:0] |
Групповая конфигурация |
Деление частоты синхронизации RTC |
000 |
OFF |
Источник не выбран, RTC остановлен |
001 |
DIV1 |
CLKRTC/1 (нет предделения) |
010 |
DIV2 |
CLKRTC/2 |
011 |
DIV8 |
CLKRTC/8 |
100 |
DIV16 |
CLKRTC/16 |
101 |
DIV64 |
CLKRTC/64 |
110 |
DIV256 |
CLKRTC/256 |
111 |
DIV1024 |
CLKRTC/1024 |
17.3.2. STATUS - регистр статуса счетчик реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x01 |
|
STATUS |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:1 - Res: резервные биты
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
- Бит 0 - SYNCBUSY: флаг занятости модуля RTC синхронизацией
Данный бит равен единице, когда регистр CNT, CTRL или COMP занят синхронизацией доменов синхронизации RTC и системной синхронизации.
17.3.3. INTCTRL - регистр управления прерываниями счетчика реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x02 |
- |
- |
- |
- |
COMPINTLVL[1:0] |
OVFINTLVL[1:0] |
|
INTCTRL |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:4 - Res: резервные биты
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
- Биты 3:2 - COMPINTLVL[1:0]: разрешение прерывания по совпадению в RTC
С помощью данных бит можно разрешить прерывание по совпадению в RTC и задать его уровень (см. раздел 12 "Прерывания и программируемый многоуровневый контроллер прерываний"). Разрешенное прерывание генерируется при установке флага COMPIF в регистре INTFLAGS.
- Биты 1:0 - OVFINTLVL[1:0]: разрешение прерывания по переполнению RTC
С помощью данных бит можно разрешить прерывание по переполнению RTC и задать его уровень (см. раздел 12 "Прерывания и программируемый многоуровневый контроллер прерываний"). Разрешенное прерывание генерируется при установке флага OVFIF в регистре INTFLAGS.
17.3.4. INTFLAGS - регистр флагов прерываний счетчика реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x03 |
|
INTFLAGS |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:2 - Res: резервные биты
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
- Бит 1 - COMPIF: флаг прерывания по совпадению в RTC
Данный флаг становится равным единице во время очередного приращения счетчика после обнаружения условия совпадения. Флаг сбрасывается автоматически при переходе на вектор прерывания по совпадению в RTC. Альтернативно, флаг можно сбросить записью в него единицы.
- Бит 0 - OVFIF: флаг прерывания по переполнению RTC
Данный флаг становится равным единице во время очередного приращения счетчика после обнаружения условия переполнения. Флаг сбрасывается автоматически при переходе на вектор прерывания по переполнению RTC. Альтернативно, флаг можно сбросить записью в него единицы.
17.3.5. TEMP - временный регистр счетчика реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x04 |
|
TEMP |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - TEMP[7:0]: временный регистр счетчика реального времени
Данный регистр используется во время 16-битного доступа к значениям регистров счетчика, сравнения и вершины счета (TOP). В этот регистр помещаются записываемые ЦПУ данные в младший байт 16-битного регистра. Кроме того, одновременно со чтением младшего байта 16-битного регистра во временный регистр копируется старший байт этого регистра. Более детально об этом см. в разделе 3.11 "Доступ к 16-битным регистрам".
17.3.6. CNTH - старший регистр счетчика реального времени
В регистровой паре CNTH и CNTL хранится 16-битное значение CNT. Приращение счетчика выполняется при каждом положительном фронте на выходе предделителя синхронизации модуля RTC. Чтение и запись 16-битных значений требует особого внимания. Более детально об этом см. в разделе 3.11 "Доступ к 16-битным регистрам".
С момента обновления регистра до вступления выполненных изменений в силу проходит два цикла синхронизации RTC. Данная задержка вызвана необходимостью синхронизации доменов синхронизации RTC и системной синхронизации. Перед записью в этот регистра необходимо опросить флаг SYNCBUSY из регистра статуса (STATUS). Равенство его нулю указывает на возможность выполнения записи.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x09 |
|
CNTH |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - CNT[15:8]: старший байт счетчика реального времени
В данных битах хранятся 8 старших бит 16-битного значения счетчика.
17.3.7. CNTL - младший регистр счетчика реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x08 |
|
CNTL |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - CNT[7:0]: младший байт счетчика реального времени
В данных битах хранятся 8 младших бит 16-битного значения счетчика.
17.3.8. PERH - старший регистр периода счетчика реального времени
В регистровой паре PERH и PERL хранится 16-битное значение PER. Значение PER непрерывно сравнивается со значением счетчика (CNT). При обнаружении совпадения устанавливается флаг OVFIF в регистре INTFLAGS. Чтение и запись 16-битных значений необходимо выполнять с особым вниманием. Более детально об этом см. в разделе 3.12 "Защита от изменения конфигурации".
С момента обновления регистра до вступления выполненных изменений в силу проходит два цикла синхронизации RTC. Данная задержка вызвана необходимостью синхронизации доменов синхронизации RTC и системной синхронизации. Перед записью в этот регистра необходимо опросить флаг SYNCBUSY из регистра статуса (STATUS). Равенство его нулю указывает на возможность выполнения записи.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x0B |
|
PERH |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
- Биты 7:0 - PER[15:8]: старший байт периода счетчика реального времени
В данных битах хранятся 8 старших бит 16-битного значения вершины счета RTC.
17.3.9. PERL - младший регистр периода счетчика реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x0A |
|
PERL |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
- Биты 7:0 - PER[7:0]: младший байт периода счетчика реального времени
В данных битах хранятся 8 младших бит 16-битного значения вершины счета RTC.
17.3.10. COMPH - старший регистр сравнения счетчика реального времени
В регистровой паре COMPH и COMPL хранится 16-битное значение COMP. Значение COMP непрерывно сравнивается со значением счетчика (CNT). При обнаружении совпадения устанавливается флаг COMPIF в регистре INTFLAGS. Чтение и запись 16-битных значений необходимо выполнять с особым вниманием. Более детально об этом см. в разделе 3.12 "Защита от изменения конфигурации".
С момента обновления регистра до вступления выполненных изменений в силу проходит два цикла синхронизации RTC. Данная задержка вызвана необходимостью синхронизации доменов синхронизации RTC и системной синхронизации. Перед записью в этот регистра необходимо опросить флаг SYNCBUSY из регистра статуса (STATUS). Равенство его нулю указывает на возможность выполнения записи.
Если значение COMP окажется больше значения PER, прерывания и события по совпадению в RTC не будут генерироваться вообще.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x0D |
|
COMPH |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - COMP[15:8]: старший байт регистра сравнения счетчика реального времени
В данных битах хранятся 8 старших бит 16-битного регистра сравнения.
17.3.11. COMPL - младший регистр сравнения счетчика реального времени
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x0C |
|
COMPL |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - COMP[7:0]: младший байт регистра сравнения счетчика реального времени
В данных битах хранятся 8 младших бит 16-битного регистра сравнения.
17.4. Обзор регистров
Адрес |
Наименование |
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит 3 |
Бит 2 |
Бит 1 |
Бит 0 |
+0x00 |
CTRL |
- |
- |
- |
- |
- |
PRESCALER[2:0] |
+0x01 |
STATUS |
- |
- |
- |
- |
- |
- |
- |
SYNCBUSY |
+0x02 |
INTCTRL |
|
|
|
|
COMPINTLVL[1:0] |
OVFINTLVL[1:0] |
+0x03 |
INTFLAGS |
- |
- |
- |
- |
- |
- |
COMPIF |
OVFIF |
+0x04 |
TEMP |
TEMP[7:0] |
+0x08 |
CNTL |
CNT[7:0] |
+0x09 |
CNTH |
CNT[15:8] |
+0x0A |
PERL |
PER[7:0] |
+0x0B |
PERH |
PER[15:8] |
+0x0C |
COMPL |
COMP[7:0] |
+0x0D |
COMPH |
COMP [15:8] |
17.5. Обзор векторов прерываний
Таблица 17.2. Векторы прерываний RTC и значения смещений их адресов
Смещение |
Источник |
Описание прерывания |
0x00 |
OVF_vect |
Вектор прерывания по переполнению счетчика реального времени |
0x02 |
PER_vect |
Вектор прерывания по совпадению в счетчике реального времени |
|