Добавлен ADC SEQ (заготовка пока)
И небольшой рефакторинг
This commit is contained in:
@@ -23,7 +23,7 @@ void tmr_init_first(void)
|
||||
RCU_APBClkCmd(RCU_APBClk_TMR0, ENABLE);
|
||||
RCU_APBRstCmd(RCU_APBRst_TMR0, ENABLE);
|
||||
|
||||
htmr0.TMR = TMR0;
|
||||
htmr0.Instance = TMR0;
|
||||
tmr_init(&htmr0, &tmr0_config);
|
||||
if(htmr0.Config->IT == ENABLE)
|
||||
{
|
||||
@@ -35,7 +35,7 @@ void tmr_init_first(void)
|
||||
RCU_APBClkCmd(RCU_APBClk_TMR1, ENABLE);
|
||||
RCU_APBRstCmd(RCU_APBRst_TMR1, ENABLE);
|
||||
|
||||
htmr1.TMR = TMR1;
|
||||
htmr1.Instance = TMR1;
|
||||
tmr_init(&htmr1, &tmr1_config);
|
||||
if(htmr1.Config->IT == ENABLE)
|
||||
{
|
||||
@@ -47,7 +47,7 @@ void tmr_init_first(void)
|
||||
RCU_APBClkCmd(RCU_APBClk_TMR2, ENABLE);
|
||||
RCU_APBRstCmd(RCU_APBRst_TMR2, ENABLE);
|
||||
|
||||
htmr2.TMR = TMR2;
|
||||
htmr2.Instance = TMR2;
|
||||
tmr_init(&htmr2, &tmr2_config);
|
||||
if(htmr2.Config->IT == ENABLE)
|
||||
{
|
||||
@@ -59,7 +59,7 @@ void tmr_init_first(void)
|
||||
RCU_APBClkCmd(RCU_APBClk_TMR3, ENABLE);
|
||||
RCU_APBRstCmd(RCU_APBRst_TMR3, ENABLE);
|
||||
|
||||
htmr3.TMR = TMR3;
|
||||
htmr3.Instance = TMR3;
|
||||
tmr_init(&htmr3, &tmr3_config);
|
||||
if(htmr3.Config->IT == ENABLE)
|
||||
{
|
||||
@@ -74,12 +74,11 @@ void tmr_init_first(void)
|
||||
* @param NewConfig указатель на новую конфигурацию UART, иначе используется та, что в структуре
|
||||
* @retval OperationStatus OK - если всё хорошо, ERROR - если ошибка
|
||||
*/
|
||||
OperationStatus tmr_init(TMR_HandleTypeDef *htmr, TMR_Init_TypeDef *NewConfig)
|
||||
OperationStatus tmr_init(TMR_HandleTypeDef *htmr, TMR_ExtInit_TypeDef *NewConfig)
|
||||
{
|
||||
if(htmr->TMR == NULL)
|
||||
{
|
||||
if(!htmr || !htmr->Instance)
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
if(NewConfig != NULL)
|
||||
{
|
||||
htmr->Config = NewConfig;
|
||||
@@ -89,7 +88,7 @@ OperationStatus tmr_init(TMR_HandleTypeDef *htmr, TMR_Init_TypeDef *NewConfig)
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
TMR_Init(htmr->TMR, htmr->Config);
|
||||
TMR_Init(htmr->Instance, htmr->Config);
|
||||
|
||||
return OK;
|
||||
}
|
||||
@@ -104,7 +103,7 @@ OperationStatus tmr_init(TMR_HandleTypeDef *htmr, TMR_Init_TypeDef *NewConfig)
|
||||
*/
|
||||
OperationStatus tmr_set_callback(TMR_HandleTypeDef* htmr, int cb_type, void (*Callback)(void))
|
||||
{
|
||||
if((htmr->TMR == NULL) || (htmr->Config == NULL))
|
||||
if(!htmr || !htmr->Instance || !htmr->Config)
|
||||
{
|
||||
return ERROR;
|
||||
}
|
||||
@@ -119,12 +118,12 @@ OperationStatus tmr_set_callback(TMR_HandleTypeDef* htmr, int cb_type, void (*Ca
|
||||
*/
|
||||
OperationStatus tmr_start(TMR_HandleTypeDef *htmr)
|
||||
{
|
||||
if(htmr->TMR == NULL)
|
||||
if(!htmr || !htmr->Instance)
|
||||
{
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
TMR_Cmd(htmr->TMR, ENABLE);
|
||||
TMR_Cmd(htmr->Instance, ENABLE);
|
||||
|
||||
return OK;
|
||||
}
|
||||
@@ -136,12 +135,12 @@ OperationStatus tmr_start(TMR_HandleTypeDef *htmr)
|
||||
*/
|
||||
OperationStatus tmr_stop(TMR_HandleTypeDef *htmr)
|
||||
{
|
||||
if(htmr->TMR == NULL)
|
||||
if(!htmr || !htmr->Instance)
|
||||
{
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
TMR_Cmd(htmr->TMR, DISABLE);
|
||||
TMR_Cmd(htmr->Instance, DISABLE);
|
||||
|
||||
return OK;
|
||||
}
|
||||
@@ -154,7 +153,7 @@ OperationStatus tmr_stop(TMR_HandleTypeDef *htmr)
|
||||
*/
|
||||
OperationStatus tmr_delay(TMR_HandleTypeDef *htmr, uint32_t delay)
|
||||
{
|
||||
if(!htmr || !htmr->TMR)
|
||||
if(!htmr || !htmr->Instance)
|
||||
return ERROR;
|
||||
|
||||
uint32_t presc = htmr->Config->Prescaler+1;
|
||||
@@ -164,14 +163,14 @@ OperationStatus tmr_delay(TMR_HandleTypeDef *htmr, uint32_t delay)
|
||||
delay_load = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
if(delay_load >= htmr->TMR->LOAD)
|
||||
if(delay_load >= htmr->Instance->LOAD)
|
||||
{
|
||||
return ERROR;
|
||||
}
|
||||
uint32_t starttick = htmr->TMR->VALUE;
|
||||
uint32_t starttick = htmr->Instance->VALUE;
|
||||
while(1)
|
||||
{
|
||||
if((starttick - htmr->TMR->VALUE) >= delay_load)
|
||||
if((starttick - htmr->Instance->VALUE) >= delay_load)
|
||||
{
|
||||
return OK;
|
||||
}
|
||||
@@ -188,10 +187,10 @@ OperationStatus tmr_delay(TMR_HandleTypeDef *htmr, uint32_t delay)
|
||||
*/
|
||||
OperationStatus tmr_delay_start(TMR_HandleTypeDef *htmr, uint32_t *var)
|
||||
{
|
||||
if(!htmr || !htmr->TMR)
|
||||
if(!htmr || !htmr->Instance)
|
||||
return ERROR;
|
||||
|
||||
*var = htmr->TMR->VALUE;
|
||||
*var = htmr->Instance->VALUE;
|
||||
|
||||
return OK;
|
||||
}
|
||||
@@ -207,7 +206,7 @@ OperationStatus tmr_delay_start(TMR_HandleTypeDef *htmr, uint32_t *var)
|
||||
*/
|
||||
int tmr_delay_done(TMR_HandleTypeDef *htmr, uint32_t delay, uint32_t *var)
|
||||
{
|
||||
if(!htmr || !htmr->TMR)
|
||||
if(!htmr || !htmr->Instance)
|
||||
return 0;
|
||||
|
||||
uint32_t presc = htmr->Config->Prescaler+1;
|
||||
@@ -217,12 +216,12 @@ int tmr_delay_done(TMR_HandleTypeDef *htmr, uint32_t delay, uint32_t *var)
|
||||
delay_load = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
if(delay_load >= htmr->TMR->LOAD)
|
||||
if(delay_load >= htmr->Instance->LOAD)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if((*var - htmr->TMR->VALUE) >= delay_load)
|
||||
if((*var - htmr->Instance->VALUE) >= delay_load)
|
||||
{
|
||||
return 1; // Задержка прошла
|
||||
}
|
||||
@@ -241,20 +240,20 @@ int tmr_delay_done(TMR_HandleTypeDef *htmr, uint32_t delay, uint32_t *var)
|
||||
*/
|
||||
void tmr_handler(TMR_HandleTypeDef* htmr)
|
||||
{
|
||||
if((htmr->TMR == NULL) || (htmr->Config == NULL))
|
||||
if((htmr->Instance == NULL) || (htmr->Config == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Проверка флага прерывания таймера */
|
||||
if (TMR_ITStatus(htmr->TMR) == SET)
|
||||
if (TMR_ITStatus(htmr->Instance) == SET)
|
||||
{
|
||||
/* Если есть коллбек вызываем его */
|
||||
if(htmr->Config->Callback)
|
||||
htmr->Config->Callback();
|
||||
|
||||
/* Очистка флага прерывания */
|
||||
TMR_ITStatusClear(htmr->TMR);
|
||||
TMR_ITStatusClear(htmr->Instance);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,11 +262,11 @@ void tmr_handler(TMR_HandleTypeDef* htmr)
|
||||
/**
|
||||
* @brief Инициализирует модуль TMRx согласно параметрам структуры InitStruct.
|
||||
* @param TMRx Выбор таймера, где x=A|B
|
||||
* @param InitStruct Указатель на структуру типа @ref TMR_Init_TypeDef,
|
||||
* @param InitStruct Указатель на структуру типа @ref TMR_ExtInit_TypeDef,
|
||||
* которая содержит конфигурационную информацию
|
||||
* @retval void
|
||||
*/
|
||||
void TMR_Init(TMR_TypeDef* TMRx, TMR_Init_TypeDef* InitStruct)
|
||||
void TMR_Init(TMR_TypeDef* TMRx, TMR_ExtInit_TypeDef* InitStruct)
|
||||
{
|
||||
uint32_t tim_clk = InitStruct->ClkFreq*__MHZ;
|
||||
uint32_t presc = InitStruct->Prescaler+1;
|
||||
|
||||
Reference in New Issue
Block a user