Добавлен ADC SEQ (заготовка пока)

И небольшой рефакторинг
This commit is contained in:
2025-12-26 18:44:38 +03:00
parent 8e350e6a91
commit c7fdf6776f
16 changed files with 1758 additions and 1933 deletions

View File

@@ -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;