NIIETCM4 PD  v0.8.0
Драйвер периферии для микроконтроллеров на базе ядра ARM Cortex-M4
niietcm4_timer.c
См. документацию.
1 
29 /* Includes ------------------------------------------------------------------*/
30 #include "niietcm4_timer.h"
31 
65 void TIMER_Cmd(NT_TIMER_TypeDef* TIMERx, FunctionalState State)
66 {
67  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
68  assert_param(IS_FUNCTIONAL_STATE(State));
69 
70  TIMERx->TCTRL_bit.ON = (uint32_t)State;
71 }
72 
84 void TIMER_PeriodConfig(NT_TIMER_TypeDef* TIMERx, uint32_t TimerClkFreq, uint32_t TimerPeriod)
85 {
86  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
87 
88  TIMERx->RELOAD = TimerPeriod * (TimerClkFreq / 1000000);
89 }
90 
102 void TIMER_FreqConfig(NT_TIMER_TypeDef* TIMERx, uint32_t TimerClkFreq, uint32_t TimerFreq)
103 {
104  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
105 
106  TIMERx->RELOAD = TimerClkFreq / TimerFreq;
107 }
108 
116 void TIMER_SetReload(NT_TIMER_TypeDef* TIMERx, uint32_t ReloadVal)
117 {
118  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
119 
120  TIMERx->RELOAD = ReloadVal;
121 }
122 
129 uint32_t TIMER_GetReload(NT_TIMER_TypeDef* TIMERx)
130 {
131  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
132 
133  return TIMERx->RELOAD;
134 }
135 
143 void TIMER_SetCounter(NT_TIMER_TypeDef* TIMERx, uint32_t CounterVal)
144 {
145  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
146 
147  TIMERx->TIMER = CounterVal;
148 }
149 
156 uint32_t TIMER_GetCounter(NT_TIMER_TypeDef* TIMERx)
157 {
158  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
159 
160  return TIMERx->TIMER;
161 }
162 
171 void TIMER_ExtInputConfig(NT_TIMER_TypeDef* TIMERx, TIMER_ExtInput_TypeDef TIMER_ExtInput)
172 {
173  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
174  assert_param(IS_TIMER_EXT_INPUT(TIMER_ExtInput));
175 
176  if (TIMER_ExtInput == TIMER_ExtInput_CountEn)
177  {
178  TIMERx->TCTRL_bit.EXTINPUT_EN = 1;
179  }
180  else if (TIMER_ExtInput == TIMER_ExtInput_CountClk)
181  {
182  TIMERx->TCTRL_bit.EXTINPUT_CLK = 1;
183  TIMERx->TCTRL_bit.EXTINPUT_EN = 1;
184  }
185  else /* (TIMER_ExtInput == TIMER_ExtInput_Disable) */
186  {
187  TIMERx->TCTRL_bit.EXTINPUT_CLK = 0;
188  TIMERx->TCTRL_bit.EXTINPUT_EN = 0;
189  }
190 }
191 
200 void TIMER_ITCmd(NT_TIMER_TypeDef* TIMERx, FunctionalState State)
201 {
202  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
203  assert_param(IS_FUNCTIONAL_STATE(State));
204 
205  TIMERx->TCTRL_bit.INTEN = (uint32_t)State;
206 }
207 
214 FlagStatus TIMER_ITStatus(NT_TIMER_TypeDef* TIMERx)
215 {
216  FlagStatus Status;
217 
218  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
219 
220  if (TIMERx->INTSTATUS_INTCLEAR_bit.INT)
221  {
222  Status = Flag_SET;
223  }
224  else /* (TIMERx->INTSTATUS_INTCLEAR_bit.INT) */
225  {
226  Status = Flag_CLEAR;
227  }
228 
229  return Status;
230 }
231 
238 void TIMER_ITStatusClear(NT_TIMER_TypeDef* TIMERx)
239 {
240  assert_param(IS_TIMER_ALL_PERIPH(TIMERx));
241 
242  TIMERx->INTSTATUS_INTCLEAR_bit.INT = 1;
243 }
244 
261 /******************* (C) COPYRIGHT 2015 NIIET *****END OF FILE****/
void TIMER_ExtInputConfig(NT_TIMER_TypeDef *TIMERx, TIMER_ExtInput_TypeDef TIMER_ExtInput)
Выбор режима работы входа внешнего тактирования.
void TIMER_SetReload(NT_TIMER_TypeDef *TIMERx, uint32_t ReloadVal)
Установка значения перезагрузки.
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
Definition: niietcm4.h:157
uint32_t TIMER_GetReload(NT_TIMER_TypeDef *TIMERx)
Получение текущего значения перезагрузки.
uint32_t TIMER_GetCounter(NT_TIMER_TypeDef *TIMERx)
Получение текущего значения счетчика.
FlagStatus
Описывает возможные состояния флага при запросе его статуса.
Definition: niietcm4.h:183
#define IS_TIMER_ALL_PERIPH(PERIPH)
Макрос проверки аргументов типа NT_TIMER_TypeDef.
Definition: niietcm4.h:193
void TIMER_FreqConfig(NT_TIMER_TypeDef *TIMERx, uint32_t TimerClkFreq, uint32_t TimerFreq)
Настройка частоты опустошения выбранного таймера.
TIMER_ExtInput_TypeDef
Настройка внешнего тактирования таймера.
#define IS_FUNCTIONAL_STATE(STATE)
Макрос проверки аргументов типа FunctionalState.
Definition: niietcm4.h:167
Файл содержит все прототипы функций для таймеров
void TIMER_ITCmd(NT_TIMER_TypeDef *TIMERx, FunctionalState State)
Разрешение работы прерывания выбранного таймера.
#define IS_TIMER_EXT_INPUT(EXT_INPUT)
Макрос проверки аргументов типа TIMER_ExtInput_TypeDef.
void TIMER_ITStatusClear(NT_TIMER_TypeDef *TIMERx)
Очищение статусного бита прерывания выбранного таймера.
void TIMER_PeriodConfig(NT_TIMER_TypeDef *TIMERx, uint32_t TimerClkFreq, uint32_t TimerPeriod)
Настройка периода опустошения выбранного таймера.
FlagStatus TIMER_ITStatus(NT_TIMER_TypeDef *TIMERx)
Чтение статуса прерывания выбранного таймера.
void TIMER_Cmd(NT_TIMER_TypeDef *TIMERx, FunctionalState State)
Разрешение работы выбранного таймера.
void TIMER_SetCounter(NT_TIMER_TypeDef *TIMERx, uint32_t CounterVal)
Установка значения счетчика.