Таблица 2.2 Описание служебных полей регистра TIMER0TCR |
|||
Разряды |
Поле |
Значение |
Описание |
15 |
TIF |
0 1 |
Флаг прерывания Таймера 0 ЦПУ (Timer Interrupt Flag) Значение счетного регистра Таймера 0 не декрементировалось до 0. Только чтение. Установка флага происходит при уменьшении значения счетного регистра до 0. Запись в разряд 1 приводит к сбросу флага (TIF = 0). |
14 |
TIE |
0/1 |
Разряд разрешения прерывания от Таймера 0 ЦПУ (Timer Interrupt Enable) Прерывание запрещено/разрешено |
13 – 12 |
Резерв |
Зарезервировано |
|
11 – 10 |
FREE SOFT |
00 01 10/11 |
Режимы эмуляции Таймера 0 ЦПУ [1] Остановка таймера после следующего декрементирования Остановка таймера после следующего декрементирования до 0 Режимы свободного счета |
9 – 6 |
Резерв |
Зарезервировано |
|
5 |
TRB |
0 1 |
Разряд перезагрузки Таймера 0 ЦПУ (Timer Reload Bit) Результатом чтения разряда TRB всегда является 0 При записи в разряд TRB 1 счетный регистр таймера TIMH:TIM пеpезагружается значением регистра периода PRDH:PRD. Одновременно происходит загрузка регистра счетчика предделителя PSCH:PSC значением регистра коэффициента деления TDDRH:TDDR |
4 |
TSS |
0 1 |
Разряд состояния остановки Таймера 0 ЦПУ – флаг, с помощью которого можно запустить или остановить таймер Равенство разряда 0 означает, что таймер запущен. Для запуска или перезапуска таймера необходимо записать в разряд 0. После сброса разряд автоматически сбрасывается в 0. Равенство разряда 1 означает, что таймер остановлен. Запись в разряд 1 приведет к остановке таймера. |
3 – 0 |
Резерв |
1 |
Зарезервировано |
Таблица 2.3 Описание служебных полей регистра предделителя TPRH:TPR |
||
Разряды |
Поле |
Описание |
15 – 8 |
PSCH:PSC |
Счетчик предделителя. Разряды содержат текущее значение обратного счета импульсов источника тактирования: значение счетчика уменьшается на 1 до 0. По окончании счета (PSCH:PSC = 0) разряды перезагружаются содержимым TDDRH:TDD, одновременно происходит декрементирование на 1 счетного регистра Таймера 0 TIMH:TIM. Разряды PSCH:PSC также перезагружаются при программной установке в 1 разряда TRB регистра управления Таймера 0 TIMER0TCR. Содержимое разрядов можно прочитать, но непосредственная запись в них невозможна. После сброса все разряды устанавливаются в 0. |
7 – 0 |
TDDRH:TDD |
Коэффициент предделения. При подсчете (TDDRH:TDD + 1) импульсов происходит уменьшение содержимого счетного регистра TIMH:TIM на 1. При сбросе все разряды принимают нулевое значение. Для увеличения времени счета в целое число раз, от значения требуемого коэффициента необходимо отнять 1 и записать результат в разряды TDDRH:TDD. |
2.3. Обращение к управляющим регистрам
При обращении используются назначенные регистрам мнемоника и определения (в терминах битовых полей и структур, сведенных в регистровые файлы), прописанные в библиотечном заголовочном файле DSP280x_CpuTimers.h [2]. Его листинг приведен в файле ПРИЛОЖЕНИЯ. Ниже представлен текст программы Example_280xCpuTimer.c, которая является примером конфигурирование и работы с Таймером 0 ЦПУ. Обозначенная в программе последовательность действий является универсальной и может служить руководством к действию при написании собственных программ.
#include "DSP280x_Device.h" // DSP280x Headerfile Include File
#include "DSP280x_Examples.h" // DSP280x Examples Include File
// Объявление прототипа функции-обработчика прерывания от Таймера 0 ЦПУ.
interrupt void cpu_timer0_isr(void);
void main(void)
{
// Шаг 1. Инициализация системы управления:
// ФАПЧ (PLL), сторожевой таймер, разрешение тактирования периферийных модулей.
InitSysCtrl(); // Размещение – файл DSP280x_SysCtrl.c [2].
// Шаг 2. Инициализация модуля в/в GPIO:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.