init
This commit is contained in:
162
научка/code/matlab_stm_emulate/Code/PWM/settings.h
Normal file
162
научка/code/matlab_stm_emulate/Code/PWM/settings.h
Normal file
@@ -0,0 +1,162 @@
|
||||
/********************************MODBUS*************************************
|
||||
Данный файл содержит объявления базовых функции и дефайны для реализации
|
||||
MODBUS.
|
||||
Данный файл необходимо подключить в rs_message.h. После подключать rs_message.h
|
||||
к основному проекту.
|
||||
***************************************************************************/
|
||||
#ifndef __PROJ_SETTINGS_H_
|
||||
#define __PROJ_SETTINGS_H_
|
||||
|
||||
#include "stm32f4xx_hal.h"
|
||||
//--------DEFINES FOR SETTING OF SETTINGS-----------
|
||||
#define SETTINGS_FLASH_ADDRESS_SHIFT (0x10000)
|
||||
#define SETTINGS_FLASH_ADDRESS (FLASH_BASE + SETTINGS_FLASH_ADDRESS_SHIFT)
|
||||
|
||||
#define EEPROM_BASE
|
||||
#define SETTINGS_EEPROM_ADDRESS_SHIFT
|
||||
#define SETTINGS_EEPROM_ADDRESS (EEPROM_BASE + SETTINGS_EEPROM_ADDRESS_SHIFT)
|
||||
|
||||
#ifdef USE_EEPROM
|
||||
#define SETTINGS_ADDRESS SETTINGS_EEPROM_ADDRESS
|
||||
#else // USE_EEPROM
|
||||
#define SETTINGS_ADDRESS SETTINGS_FLASH_ADDRESS
|
||||
#endif // USE_EEPROM
|
||||
//--------------------------------------------------
|
||||
//------------DEFINES FOR PWM SETTING---------------
|
||||
// settings defines
|
||||
#define HZ_TIMER_CTRL 400
|
||||
#define HZ_TIMER_PWM 1000
|
||||
#define PWM_RAMP_SPEED 20
|
||||
|
||||
|
||||
// TIM PWM1 SETTINGS
|
||||
#define PWM_MASTER_TIM_NUMB 4
|
||||
#define TIMER_PWM_TICKBASE TIM_TickBase_1US
|
||||
#define TIMER_PWM_AHB_FREQ 84
|
||||
|
||||
#define TIMER_PWM1_INSTANCE TIM4
|
||||
#define TIMER_PWM1_TIM_CHANNEL1 TIM_CHANNEL_1
|
||||
#define TIMER_PWM1_TIM_CHANNEL2 TIM_CHANNEL_2
|
||||
#define TIMER_PWM1_GPIOx GPIOD
|
||||
#define TIMER_PWM1_GPIO_PIN_X1 GPIO_PIN_12
|
||||
#define TIMER_PWM1_GPIO_PIN_X2 GPIO_PIN_13
|
||||
|
||||
|
||||
|
||||
// TIM PWM2 SETTINGS
|
||||
#define TIMER_PWM2_INSTANCE TIM3
|
||||
#define TIMER_PWM2_TIM_CHANNEL1 TIM_CHANNEL_3
|
||||
#define TIMER_PWM2_TIM_CHANNEL2 TIM_CHANNEL_4
|
||||
#define TIMER_PWM2_GPIOx GPIOB
|
||||
#define TIMER_PWM2_GPIO_PIN_X1 GPIO_PIN_0
|
||||
#define TIMER_PWM2_GPIO_PIN_X2 GPIO_PIN_1
|
||||
|
||||
|
||||
|
||||
// TIM PWM3 SETTINGS
|
||||
#define TIMER_PWM3_INSTANCE TIM1
|
||||
#define TIMER_PWM3_TIM_CHANNEL1 TIM_CHANNEL_1
|
||||
#define TIMER_PWM3_TIM_CHANNEL2 TIM_CHANNEL_2
|
||||
#define TIMER_PWM3_GPIOx GPIOE
|
||||
#define TIMER_PWM3_GPIO_PIN_X1 GPIO_PIN_9
|
||||
#define TIMER_PWM3_GPIO_PIN_X2 GPIO_PIN_11
|
||||
|
||||
// TIM CTRL SETTINGS
|
||||
#define TIMER_CTRL_INSTANCE TIM13
|
||||
#define TIMER_CTRL_TICKBASE TIM_TickBase_1US
|
||||
#define TIMER_CTRL_AHB_FREQ 84
|
||||
|
||||
// TIM ENCODER SETTINGS
|
||||
#define TIMER_ENCODER_INSTANCE TIM5
|
||||
#define TIMER_ENCODER_TICKBASE (TIM_TickBase_1US)
|
||||
#define TIMER_ENCODER_AHB_FREQ 84
|
||||
#define TIMER_ENCODER_PORT GPIOA
|
||||
#define TIMER_ENCODER_PIN1 GPIO_PIN_0
|
||||
#define TIMER_ENCODER_PIN2 GPIO_PIN_1
|
||||
#define TIMER_ENCODER_PIN_SW GPIO_PIN_2
|
||||
|
||||
// PWM SETTINGS
|
||||
#define SIN_TABLE_ORIGIN sin_table
|
||||
#define SIN_TABLE_SIZE_MAX 1000
|
||||
//--------------------------------------------------
|
||||
|
||||
//----------DEFINES FOR MODBUS SETTING--------------
|
||||
#define MODBUS_UART_NUMB 3 // number of used uart
|
||||
#define MODBUS_SPEED 115200
|
||||
#define MODBUS_GPIOX GPIOB
|
||||
#define MODBUS_GPIO_PIN_RX GPIO_PIN_11
|
||||
#define MODBUS_GPIO_PIN_TX GPIO_PIN_10
|
||||
/* accord to this define sets define USED_MB_UART = USARTx */
|
||||
#define MODBUS_TIM_NUMB 7 // number of used uart
|
||||
#define MODBUS_TIM_AHB_FREQ 84
|
||||
/* accord to this define sets define USED_MB_TIM = TIMx */
|
||||
|
||||
/* defines for modbus behaviour */
|
||||
#define MODBUS_DEVICE_ID 1 // number of used uart
|
||||
#define MODBUS_MAX_TIMEOUT 5000 // is ms
|
||||
// custom define for size of receive message
|
||||
//--------------------------------------------------
|
||||
|
||||
typedef struct
|
||||
{
|
||||
// ctrl periph settings
|
||||
uint32_t TIM_CTRL_TICKBASE;
|
||||
uint32_t TIM_CTRL_AHB_FREQ;
|
||||
// pwm peripth settings
|
||||
uint32_t TIM_PWM_TICKBASE;
|
||||
uint32_t TIM_PWM_AHB_FREQ;
|
||||
|
||||
// uint32_t TIM_PWM1_INSTANCE;
|
||||
uint32_t TIM_PWM1_TIM_CHANNEL1;
|
||||
uint32_t TIM_PWM1_TIM_CHANNEL2;
|
||||
uint32_t TIM_PWM1_GPIOx;
|
||||
uint32_t TIM_PWM1_GPIO_PIN_X1;
|
||||
uint32_t TIM_PWM1_GPIO_PIN_X2;
|
||||
|
||||
uint32_t TIM_PWM2_INSTANCE;
|
||||
uint32_t TIM_PWM2_TIM_CHANNEL1;
|
||||
uint32_t TIM_PWM2_TIM_CHANNEL2;
|
||||
uint32_t TIM_PWM2_GPIOx;
|
||||
uint32_t TIM_PWM2_GPIO_PIN_X1;
|
||||
uint32_t TIM_PWM2_GPIO_PIN_X2;
|
||||
|
||||
uint32_t TIM_PWM3_INSTANCE;
|
||||
uint32_t TIM_PWM3_TIM_CHANNEL1;
|
||||
uint32_t TIM_PWM3_TIM_CHANNEL2;
|
||||
uint32_t TIM_PWM3_GPIOx;
|
||||
uint32_t TIM_PWM3_GPIO_PIN_X1;
|
||||
uint32_t TIM_PWM3_GPIO_PIN_X2;
|
||||
|
||||
|
||||
// modbus peripth settings
|
||||
uint32_t MB_DEVICE_ID;
|
||||
uint32_t MB_SPEED;
|
||||
uint32_t MB_GPIOX;
|
||||
uint32_t MB_GPIO_PIN_RX;
|
||||
uint32_t MB_GPIO_PIN_TX;
|
||||
uint32_t MB_MAX_TIMEOUT;
|
||||
uint32_t MB_TIM_AHB_FREQ;
|
||||
|
||||
// uint32_t MB_UART_NUMB;
|
||||
// uint32_t MB_TIM_NUMB;
|
||||
}ProjectSettings_TypeDef;
|
||||
extern ProjectSettings_TypeDef PROJSET;
|
||||
|
||||
#define PROJSET_MEM ((ProjectSettings_TypeDef *)SETTINGS_ADDRESS)
|
||||
|
||||
|
||||
//#define HAL_FLASH_GET_TYPEPROGRAM(_val_) (sizeof(PROJSET_MEM->MB_DEVICE_ID)/2 - 1)
|
||||
#define HAL_FLASH_GET_TYPEPROGRAM(_val_) FLASH_TYPEPROGRAM_WORD
|
||||
#define FLASH_WRITE_SETTING(_setting_, _val_) HAL_FLASH_Program(HAL_FLASH_GET_TYPEPROGRAM(_setting_), (uint32_t)(&_setting_), (uint32_t)_val_);
|
||||
#define STRUCT_WRITE_SETTING(_setting_, _val_) (_setting_ = _val_)
|
||||
|
||||
|
||||
void FillStructWithDefines(void);
|
||||
void SetFlagUpdateSettingsInMem(void);
|
||||
void UpdateSettingsInMem(void);
|
||||
void WriteSettingsToMem(void);
|
||||
void FillSettingsWithDefines(void);
|
||||
void CheckSettingsInFLASH(void);
|
||||
int CheckIsSettingsValid(ProjectSettings_TypeDef* set_struct);
|
||||
|
||||
#endif // __PROJ_SETTINGS_H_
|
||||
Reference in New Issue
Block a user