#ifndef __CONTROL_H_
#define __CONTROL_H_

#include "modbus_data.h"
#include "periph_general.h"
#include "math.h"
#include "settings.h"

#define M_PI           	3.14159265358979323846  /* pi */

extern TIM_SettingsTypeDef TIM_CTRL;

//---------------------this called from TIM_CTRL_Handler()-----------------------
/** 
	* @brief 	Update log parameters.
	* @note 	Проверка надо ли обновлять параметры логов, и если надо - обновляет их.
	* @note		This called from TIM_CTRL_Handler
	*/
void Update_Params_For_Log(void);
/** 
	* @brief 	Filling logs.
	* @note 	заполнение логов: синус, шим, пила.
	* @note		this called from TIM_CTRL_Handler
	*/
void Fill_Logs_with_Data(void);
/** 
	* @brief 	Set up log parameters.
	* @note 	Устанавливает настройки логов и проверяет их на корректность.
	*/
void Set_Log_Params(void);

/** 
	* @brief 	First initialization of Control Timer.
	* @note 	Первый управляющего таймера. Таймер записывает логи и обновляет параметры ШИМ.
	* @note		This called from main
	*/
void Control_Timer_FirstInit(void);

// this called from main while(1)
/** 
	* @brief 	reInitialization of control timer.
	* @param	stim - указатель на настройки таймера.
	* @note 	Перенастраивает таймер согласно принятным настройкам в log_ctrl.
	* @note		This called from main while
	*/
void Control_Timer_ReInit(TIM_SettingsTypeDef *stim);

#endif // __CONTROL_H_