Compare commits
1 Commits
main
...
count-ac-p
Author | SHA1 | Date | |
---|---|---|---|
aa440d63a1 |
@@ -190,13 +190,13 @@ const presets_t presets[4] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
PIDController pid = {
|
PIDController pid = {
|
||||||
.Kp = 40.0f,
|
.Kp = 8.0f,
|
||||||
.Ki = 1.0f,
|
.Ki = 0.2f,
|
||||||
.Kd = 3.0f,
|
.Kd = 0.5f,
|
||||||
.T = 0.25f, //2 times per second
|
.T = 0.25f, //2 times per second
|
||||||
.tau = 0.2f, //Low-pass filter (0 - no filter)
|
.tau = 0.2f, //Low-pass filter (0 - no filter)
|
||||||
.limMin = -100.0f,
|
.limMin = -100.0f,
|
||||||
.limMax = 1000.0f - P_WIDTH - P_DELAY - 1 // 949.0
|
.limMax = 100.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
/* USER CODE END Variables */
|
/* USER CODE END Variables */
|
||||||
@@ -536,14 +536,13 @@ void clockTick(void *argument)
|
|||||||
//PID
|
//PID
|
||||||
PID_Update(&pid, aimTemperature, Temperature);
|
PID_Update(&pid, aimTemperature, Temperature);
|
||||||
if (pid.out >= 0.0f) {
|
if (pid.out >= 0.0f) {
|
||||||
pulse = (uint16_t)(pid.limMax - pid.out)+P_DELAY;
|
pulse = (uint16_t)pid.out;
|
||||||
if (fanActive) setFansSpeed(0);
|
if (fanActive) setFansSpeed(0);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pulse = 1020;
|
pulse = 0;
|
||||||
setFansSpeed((uint8_t)(pid.out * -1));
|
setFansSpeed((uint8_t)(pid.out * -1));
|
||||||
}
|
}
|
||||||
TIM1->ARR = pulse+P_WIDTH;
|
|
||||||
TIM1->CCR2 = pulse;
|
TIM1->CCR2 = pulse;
|
||||||
|
|
||||||
//Draw PID value
|
//Draw PID value
|
||||||
@@ -930,7 +929,7 @@ void stopHeater(void) {
|
|||||||
if (osTimerIsRunning(secTimerHandle)) osTimerStop(secTimerHandle);
|
if (osTimerIsRunning(secTimerHandle)) osTimerStop(secTimerHandle);
|
||||||
aimTemperature = 0.0f;
|
aimTemperature = 0.0f;
|
||||||
PID_Init(&pid);
|
PID_Init(&pid);
|
||||||
TIM1->CCR2 = 1020;
|
TIM1->CCR2 = 0;
|
||||||
Running = 0;
|
Running = 0;
|
||||||
}
|
}
|
||||||
/* USER CODE END Application */
|
/* USER CODE END Application */
|
||||||
|
@@ -38,10 +38,8 @@ void MX_TIM1_Init(void)
|
|||||||
|
|
||||||
/* USER CODE END TIM1_Init 0 */
|
/* USER CODE END TIM1_Init 0 */
|
||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
|
|
||||||
TIM_SlaveConfigTypeDef sSlaveConfig = {0};
|
TIM_SlaveConfigTypeDef sSlaveConfig = {0};
|
||||||
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||||
TIM_IC_InitTypeDef sConfigIC = {0};
|
|
||||||
TIM_OC_InitTypeDef sConfigOC = {0};
|
TIM_OC_InitTypeDef sConfigOC = {0};
|
||||||
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
|
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
|
||||||
|
|
||||||
@@ -49,36 +47,23 @@ void MX_TIM1_Init(void)
|
|||||||
|
|
||||||
/* USER CODE END TIM1_Init 1 */
|
/* USER CODE END TIM1_Init 1 */
|
||||||
htim1.Instance = TIM1;
|
htim1.Instance = TIM1;
|
||||||
htim1.Init.Prescaler = 640-1;
|
htim1.Init.Prescaler = 1;
|
||||||
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htim1.Init.Period = 1000-1;
|
htim1.Init.Period = 100-1;
|
||||||
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim1.Init.RepetitionCounter = 0;
|
htim1.Init.RepetitionCounter = 0;
|
||||||
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
|
||||||
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
|
||||||
if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
if (HAL_TIM_IC_Init(&htim1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
|
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
|
||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_OnePulse_Init(&htim1, TIM_OPMODE_SINGLE) != HAL_OK)
|
sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
sSlaveConfig.SlaveMode = TIM_SLAVEMODE_COMBINED_RESETTRIGGER;
|
|
||||||
sSlaveConfig.InputTrigger = TIM_TS_TI1FP1;
|
sSlaveConfig.InputTrigger = TIM_TS_TI1FP1;
|
||||||
sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
|
sSlaveConfig.TriggerPolarity = TIM_TRIGGERPOLARITY_RISING;
|
||||||
sSlaveConfig.TriggerFilter = 0;
|
sSlaveConfig.TriggerFilter = 0;
|
||||||
if (HAL_TIM_SlaveConfigSynchro(&htim1, &sSlaveConfig) != HAL_OK)
|
if (HAL_TIM_SlaveConfigSynchro(&htim1, &sSlaveConfig) != HAL_OK)
|
||||||
{
|
{
|
||||||
@@ -91,16 +76,8 @@ void MX_TIM1_Init(void)
|
|||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
sConfigOC.Pulse = 0;
|
||||||
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
|
||||||
sConfigIC.ICFilter = 0;
|
|
||||||
if (HAL_TIM_IC_ConfigChannel(&htim1, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM2;
|
|
||||||
sConfigOC.Pulse = 1020;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
|
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
|
@@ -69,21 +69,19 @@ Mcu.Pin30=PB9
|
|||||||
Mcu.Pin31=VP_FREERTOS_VS_CMSIS_V2
|
Mcu.Pin31=VP_FREERTOS_VS_CMSIS_V2
|
||||||
Mcu.Pin32=VP_SYS_VS_tim6
|
Mcu.Pin32=VP_SYS_VS_tim6
|
||||||
Mcu.Pin33=VP_SYS_VS_DBSignals
|
Mcu.Pin33=VP_SYS_VS_DBSignals
|
||||||
Mcu.Pin34=VP_TIM1_VS_ControllerModeCombinedResetTrigger
|
Mcu.Pin34=VP_TIM1_VS_ControllerModeClock
|
||||||
Mcu.Pin35=VP_TIM1_VS_ClockSourceINT
|
Mcu.Pin35=VP_TIM14_VS_ClockSourceINT
|
||||||
Mcu.Pin36=VP_TIM1_VS_OPM
|
Mcu.Pin36=VP_TIM15_VS_ClockSourceINT
|
||||||
Mcu.Pin37=VP_TIM14_VS_ClockSourceINT
|
Mcu.Pin37=VP_TIM16_VS_ClockSourceINT
|
||||||
Mcu.Pin38=VP_TIM15_VS_ClockSourceINT
|
Mcu.Pin38=VP_TIM16_VS_OPM
|
||||||
Mcu.Pin39=VP_TIM16_VS_ClockSourceINT
|
Mcu.Pin39=VP_TIM17_VS_ClockSourceINT
|
||||||
Mcu.Pin4=PC1
|
Mcu.Pin4=PC1
|
||||||
Mcu.Pin40=VP_TIM16_VS_OPM
|
|
||||||
Mcu.Pin41=VP_TIM17_VS_ClockSourceINT
|
|
||||||
Mcu.Pin5=PC2
|
Mcu.Pin5=PC2
|
||||||
Mcu.Pin6=PC3
|
Mcu.Pin6=PC3
|
||||||
Mcu.Pin7=PA0
|
Mcu.Pin7=PA0
|
||||||
Mcu.Pin8=PA1
|
Mcu.Pin8=PA1
|
||||||
Mcu.Pin9=PA2
|
Mcu.Pin9=PA2
|
||||||
Mcu.PinsNb=42
|
Mcu.PinsNb=40
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32G070RBTx
|
Mcu.UserName=STM32G070RBTx
|
||||||
@@ -296,9 +294,8 @@ SH.S_TIM15_CH1.0=TIM15_CH1,PWM Generation1 CH1
|
|||||||
SH.S_TIM15_CH1.ConfNb=1
|
SH.S_TIM15_CH1.ConfNb=1
|
||||||
SH.S_TIM17_CH1.0=TIM17_CH1,PWM Generation1 CH1
|
SH.S_TIM17_CH1.0=TIM17_CH1,PWM Generation1 CH1
|
||||||
SH.S_TIM17_CH1.ConfNb=1
|
SH.S_TIM17_CH1.ConfNb=1
|
||||||
SH.S_TIM1_CH1.0=TIM1_CH1,Input_Capture1_from_TI1
|
SH.S_TIM1_CH1.0=TIM1_CH1,TriggerSource_TI1FP1
|
||||||
SH.S_TIM1_CH1.1=TIM1_CH1,TriggerSource_TI1FP1
|
SH.S_TIM1_CH1.ConfNb=1
|
||||||
SH.S_TIM1_CH1.ConfNb=2
|
|
||||||
SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2
|
SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2
|
||||||
SH.S_TIM1_CH2.ConfNb=1
|
SH.S_TIM1_CH2.ConfNb=1
|
||||||
SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
|
SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
|
||||||
@@ -308,19 +305,17 @@ SPI2.Direction=SPI_DIRECTION_2LINES_RXONLY
|
|||||||
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler
|
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler
|
||||||
SPI2.Mode=SPI_MODE_MASTER
|
SPI2.Mode=SPI_MODE_MASTER
|
||||||
SPI2.VirtualType=VM_MASTER
|
SPI2.VirtualType=VM_MASTER
|
||||||
TIM1.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE
|
TIM1.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
|
||||||
TIM1.AutomaticOutput=TIM_AUTOMATICOUTPUT_DISABLE
|
TIM1.AutomaticOutput=TIM_AUTOMATICOUTPUT_DISABLE
|
||||||
TIM1.BreakState=TIM_BREAK_DISABLE
|
TIM1.BreakState=TIM_BREAK_DISABLE
|
||||||
TIM1.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
|
|
||||||
TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||||
TIM1.ICPolarity_CH1=TIM_INPUTCHANNELPOLARITY_RISING
|
TIM1.IPParameters=AutoReloadPreload,Prescaler,Period,BreakState,AutomaticOutput,OCPolarity_2,Channel-PWM Generation2 CH2,OCMode_PWM-PWM Generation2 CH2,Pulse-PWM Generation2 CH2,OC2Preload_PWM
|
||||||
TIM1.IPParameters=AutoReloadPreload,Prescaler,Period,BreakState,AutomaticOutput,Channel-Input_Capture1_from_TI1,ICPolarity_CH1,OCPolarity_2,Channel-PWM Generation2 CH2,OCMode_PWM-PWM Generation2 CH2,Pulse-PWM Generation2 CH2,OC2Preload_PWM
|
|
||||||
TIM1.OC2Preload_PWM=DISABLE
|
TIM1.OC2Preload_PWM=DISABLE
|
||||||
TIM1.OCMode_PWM-PWM\ Generation2\ CH2=TIM_OCMODE_PWM2
|
TIM1.OCMode_PWM-PWM\ Generation2\ CH2=TIM_OCMODE_PWM1
|
||||||
TIM1.OCPolarity_2=TIM_OCPOLARITY_HIGH
|
TIM1.OCPolarity_2=TIM_OCPOLARITY_HIGH
|
||||||
TIM1.Period=1000-1
|
TIM1.Period=100-1
|
||||||
TIM1.Prescaler=640-1
|
TIM1.Prescaler=1
|
||||||
TIM1.Pulse-PWM\ Generation2\ CH2=1020
|
TIM1.Pulse-PWM\ Generation2\ CH2=0
|
||||||
TIM14.Channel=TIM_CHANNEL_1
|
TIM14.Channel=TIM_CHANNEL_1
|
||||||
TIM14.IPParameters=Channel,Prescaler,Period,Pulse
|
TIM14.IPParameters=Channel,Prescaler,Period,Pulse
|
||||||
TIM14.Period=100-1
|
TIM14.Period=100-1
|
||||||
@@ -357,12 +352,8 @@ VP_TIM16_VS_OPM.Mode=OPM_bit
|
|||||||
VP_TIM16_VS_OPM.Signal=TIM16_VS_OPM
|
VP_TIM16_VS_OPM.Signal=TIM16_VS_OPM
|
||||||
VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
|
VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
|
||||||
VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
|
VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
|
||||||
VP_TIM1_VS_ClockSourceINT.Mode=Internal
|
VP_TIM1_VS_ControllerModeClock.Mode=Clock Mode
|
||||||
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
|
VP_TIM1_VS_ControllerModeClock.Signal=TIM1_VS_ControllerModeClock
|
||||||
VP_TIM1_VS_ControllerModeCombinedResetTrigger.Mode=Combined_Reset_Trigger_Mode
|
|
||||||
VP_TIM1_VS_ControllerModeCombinedResetTrigger.Signal=TIM1_VS_ControllerModeCombinedResetTrigger
|
|
||||||
VP_TIM1_VS_OPM.Mode=OPM_bit
|
|
||||||
VP_TIM1_VS_OPM.Signal=TIM1_VS_OPM
|
|
||||||
board=custom
|
board=custom
|
||||||
rtos.0.ip=FREERTOS
|
rtos.0.ip=FREERTOS
|
||||||
isbadioc=false
|
isbadioc=false
|
||||||
|
Reference in New Issue
Block a user