小回路框架
This commit is contained in:
parent
7b808be8eb
commit
beef652522
|
@ -60,7 +60,15 @@
|
||||||
"pid_g.h": "c",
|
"pid_g.h": "c",
|
||||||
"mode_pwmp.h": "c",
|
"mode_pwmp.h": "c",
|
||||||
"eeprom_m95.h": "c",
|
"eeprom_m95.h": "c",
|
||||||
"sys.h": "c"
|
"sys.h": "c",
|
||||||
|
"data_type_def.h": "c",
|
||||||
|
"at_hc24.h": "c",
|
||||||
|
"board.h": "c",
|
||||||
|
"dacs.h": "c",
|
||||||
|
"entity.h": "c",
|
||||||
|
"pid.h": "c",
|
||||||
|
"filter.h": "c",
|
||||||
|
"convert.h": "c"
|
||||||
},
|
},
|
||||||
"C_Cpp.errorSquiggles": "disabled"
|
"C_Cpp.errorSquiggles": "disabled"
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Auto generated Run-Time-Environment Component Configuration File
|
* Auto generated Run-Time-Environment Configuration File
|
||||||
* *** Do not modify ! ***
|
* *** Do not modify ! ***
|
||||||
*
|
*
|
||||||
* Project: 'controller-v2'
|
* Project: 'controller-v2'
|
||||||
|
@ -17,4 +17,5 @@
|
||||||
#define CMSIS_device_header "stm32l4xx.h"
|
#define CMSIS_device_header "stm32l4xx.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* RTE_COMPONENTS_H */
|
#endif /* RTE_COMPONENTS_H */
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>6</nTsel>
|
<nTsel>4</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
|
@ -325,6 +325,7 @@
|
||||||
<pMultCmdsp></pMultCmdsp>
|
<pMultCmdsp></pMultCmdsp>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
<Enable>1</Enable>
|
<Enable>1</Enable>
|
||||||
|
<EnableFlashSeq>0</EnableFlashSeq>
|
||||||
<EnableLog>0</EnableLog>
|
<EnableLog>0</EnableLog>
|
||||||
<Protocol>2</Protocol>
|
<Protocol>2</Protocol>
|
||||||
<DbgClock>10000000</DbgClock>
|
<DbgClock>10000000</DbgClock>
|
||||||
|
|
|
@ -10,14 +10,14 @@
|
||||||
<TargetName>controller-v2</TargetName>
|
<TargetName>controller-v2</TargetName>
|
||||||
<ToolsetNumber>0x4</ToolsetNumber>
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
<ToolsetName>ARM-ADS</ToolsetName>
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
<pCCUsed>5060061::V5.06 update 1 (build 61)::ARMCC</pCCUsed>
|
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
|
||||||
<uAC6>0</uAC6>
|
<uAC6>0</uAC6>
|
||||||
<TargetOption>
|
<TargetOption>
|
||||||
<TargetCommonOption>
|
<TargetCommonOption>
|
||||||
<Device>STM32L476VGTx</Device>
|
<Device>STM32L476VGTx</Device>
|
||||||
<Vendor>STMicroelectronics</Vendor>
|
<Vendor>STMicroelectronics</Vendor>
|
||||||
<PackID>Keil.STM32L4xx_DFP.2.1.0</PackID>
|
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||||
<PackURL>http://www.keil.com/pack</PackURL>
|
<PackURL>https://www.keil.com/pack/</PackURL>
|
||||||
<Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE</Cpu>
|
<Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE</Cpu>
|
||||||
<FlashUtilSpec></FlashUtilSpec>
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
<StartupFile></StartupFile>
|
<StartupFile></StartupFile>
|
||||||
|
@ -184,6 +184,9 @@
|
||||||
<hadXRAM>0</hadXRAM>
|
<hadXRAM>0</hadXRAM>
|
||||||
<uocXRam>0</uocXRam>
|
<uocXRam>0</uocXRam>
|
||||||
<RvdsVP>1</RvdsVP>
|
<RvdsVP>1</RvdsVP>
|
||||||
|
<RvdsMve>0</RvdsMve>
|
||||||
|
<RvdsCdeCp>0</RvdsCdeCp>
|
||||||
|
<nBranchProt>0</nBranchProt>
|
||||||
<hadIRAM2>1</hadIRAM2>
|
<hadIRAM2>1</hadIRAM2>
|
||||||
<hadIROM2>0</hadIROM2>
|
<hadIROM2>0</hadIROM2>
|
||||||
<StupSel>8</StupSel>
|
<StupSel>8</StupSel>
|
||||||
|
@ -350,7 +353,7 @@
|
||||||
<NoWarn>0</NoWarn>
|
<NoWarn>0</NoWarn>
|
||||||
<uSurpInc>0</uSurpInc>
|
<uSurpInc>0</uSurpInc>
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<uClangAs>0</uClangAs>
|
<ClangAsOpt>4</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -991,7 +994,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -1043,8 +1046,8 @@
|
||||||
<TargetCommonOption>
|
<TargetCommonOption>
|
||||||
<Device>STM32L476VGTx</Device>
|
<Device>STM32L476VGTx</Device>
|
||||||
<Vendor>STMicroelectronics</Vendor>
|
<Vendor>STMicroelectronics</Vendor>
|
||||||
<PackID>Keil.STM32L4xx_DFP.2.1.0</PackID>
|
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||||
<PackURL>http://www.keil.com/pack</PackURL>
|
<PackURL>https://www.keil.com/pack/</PackURL>
|
||||||
<Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE</Cpu>
|
<Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE</Cpu>
|
||||||
<FlashUtilSpec></FlashUtilSpec>
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
<StartupFile></StartupFile>
|
<StartupFile></StartupFile>
|
||||||
|
@ -1211,6 +1214,9 @@
|
||||||
<hadXRAM>0</hadXRAM>
|
<hadXRAM>0</hadXRAM>
|
||||||
<uocXRam>0</uocXRam>
|
<uocXRam>0</uocXRam>
|
||||||
<RvdsVP>1</RvdsVP>
|
<RvdsVP>1</RvdsVP>
|
||||||
|
<RvdsMve>0</RvdsMve>
|
||||||
|
<RvdsCdeCp>0</RvdsCdeCp>
|
||||||
|
<nBranchProt>0</nBranchProt>
|
||||||
<hadIRAM2>1</hadIRAM2>
|
<hadIRAM2>1</hadIRAM2>
|
||||||
<hadIROM2>0</hadIROM2>
|
<hadIROM2>0</hadIROM2>
|
||||||
<StupSel>8</StupSel>
|
<StupSel>8</StupSel>
|
||||||
|
@ -1377,7 +1383,7 @@
|
||||||
<NoWarn>0</NoWarn>
|
<NoWarn>0</NoWarn>
|
||||||
<uSurpInc>0</uSurpInc>
|
<uSurpInc>0</uSurpInc>
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<uClangAs>0</uClangAs>
|
<ClangAsOpt>4</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -1880,8 +1886,8 @@
|
||||||
<TargetCommonOption>
|
<TargetCommonOption>
|
||||||
<Device>STM32L476VGTx</Device>
|
<Device>STM32L476VGTx</Device>
|
||||||
<Vendor>STMicroelectronics</Vendor>
|
<Vendor>STMicroelectronics</Vendor>
|
||||||
<PackID>Keil.STM32L4xx_DFP.2.1.0</PackID>
|
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||||
<PackURL>http://www.keil.com/pack</PackURL>
|
<PackURL>https://www.keil.com/pack/</PackURL>
|
||||||
<Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE</Cpu>
|
<Cpu>IRAM(0x20000000,0x00018000) IRAM2(0x10000000,0x00008000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE</Cpu>
|
||||||
<FlashUtilSpec></FlashUtilSpec>
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
<StartupFile></StartupFile>
|
<StartupFile></StartupFile>
|
||||||
|
@ -2048,6 +2054,9 @@
|
||||||
<hadXRAM>0</hadXRAM>
|
<hadXRAM>0</hadXRAM>
|
||||||
<uocXRam>0</uocXRam>
|
<uocXRam>0</uocXRam>
|
||||||
<RvdsVP>1</RvdsVP>
|
<RvdsVP>1</RvdsVP>
|
||||||
|
<RvdsMve>0</RvdsMve>
|
||||||
|
<RvdsCdeCp>0</RvdsCdeCp>
|
||||||
|
<nBranchProt>0</nBranchProt>
|
||||||
<hadIRAM2>1</hadIRAM2>
|
<hadIRAM2>1</hadIRAM2>
|
||||||
<hadIROM2>0</hadIROM2>
|
<hadIROM2>0</hadIROM2>
|
||||||
<StupSel>8</StupSel>
|
<StupSel>8</StupSel>
|
||||||
|
@ -2214,7 +2223,7 @@
|
||||||
<NoWarn>0</NoWarn>
|
<NoWarn>0</NoWarn>
|
||||||
<uSurpInc>0</uSurpInc>
|
<uSurpInc>0</uSurpInc>
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<uClangAs>0</uClangAs>
|
<ClangAsOpt>4</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -2303,7 +2312,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -2382,7 +2391,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -2506,7 +2515,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -2640,7 +2649,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -2719,7 +2728,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -2808,7 +2817,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -2937,7 +2946,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -3046,7 +3055,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -3225,7 +3234,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
@ -3334,7 +3343,7 @@
|
||||||
<NoWarn>2</NoWarn>
|
<NoWarn>2</NoWarn>
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<uClangAs>2</uClangAs>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls></MiscControls>
|
<MiscControls></MiscControls>
|
||||||
<Define></Define>
|
<Define></Define>
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -1,59 +1,108 @@
|
||||||
#ifndef __MODE_PWMP_HD_H__
|
#ifndef __MODE_PWMP_HD_H__
|
||||||
#define __MODE_PWMP_HD_H__
|
#define __MODE_PWMP_HD_H__
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "filter.h"
|
||||||
|
|
||||||
#define MODE_DEFAULT_AUTOLOAD 99 // 预分频系数
|
/*********************************** 宏定义 ***********************************/
|
||||||
#define WAIT_COUNT_MAX 10 // 蓝牙等待最大次数
|
|
||||||
|
|
||||||
#define VIP_H_EN_HD 1 // 高电压输出开关
|
|
||||||
///////////////////////////////////////*算法整定部分宏定义BEGIN*////////////////////////////////////////
|
|
||||||
|
|
||||||
#define TIME_CYCLE 0.01f // 定义时间周期:10ms
|
|
||||||
#define FSM_WAIT(st) BIT_SET(st, BIT7)
|
#define FSM_WAIT(st) BIT_SET(st, BIT7)
|
||||||
#define FSM_IS_WAIT(st) (st & BIT7)
|
#define FSM_IS_WAIT(st) (st & BIT7)
|
||||||
#define DIFF_ADC_MAX 10U
|
|
||||||
|
|
||||||
///////////////////////////////////////*算法整定部分宏定义END*///////////////////////////////////////////
|
#define EXECUTE_PLAN EXECUTE_PLAN_1 // 执行方案
|
||||||
|
#define CON_MAX 4095 // 驱动最大值
|
||||||
|
#define CON_MIN 0 // 驱动最小值
|
||||||
|
|
||||||
#define EXECUTE_PLAN EXECUTE_PLAN_1
|
/************************************ 枚举 ************************************/
|
||||||
|
// 模式任务
|
||||||
/*----------------------------------------*/
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
PWMP_HD_PROCESS_CONTROL,
|
MINOR_PROCESS_CONTROL, // 控制
|
||||||
PWMP_HD_PROCESS_ADJUST,
|
MINOR_PROCESS_ADJUST, // 整定
|
||||||
PWMP_HD_PROCESS_TEST,
|
MINOR_PROCESS_TEST, // 测试
|
||||||
PWMP_HD_PROCESS_STOP,
|
MINOR_PROCESS_STOP, // 停止
|
||||||
} mode_pwmp_hd_process_state_e; // 处理状态
|
} mode_minor_process_state_e;
|
||||||
|
|
||||||
/*需要存储的变量*/
|
// 算法方案
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
EXECUTE_PLAN_1,
|
||||||
|
EXECUTE_PLAN_2,
|
||||||
|
EXECUTE_PLAN_3,
|
||||||
|
EXECUTE_PLAN_4,
|
||||||
|
} execute_plan_minor_e;
|
||||||
|
|
||||||
|
// 执行标志
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
EXECUTE_NONE = 0, // 不执行输出
|
||||||
|
EXECUTE_OUT = 1, // 执行输出
|
||||||
|
} execute_e;
|
||||||
|
|
||||||
|
// 整定状态
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ADJUST_DISABLE, // 整定禁用
|
||||||
|
ADJUST_ONGING, // 整定进行中
|
||||||
|
ADJUST_OK, // 整定成功
|
||||||
|
|
||||||
|
} minor_adjust_state_e;
|
||||||
|
|
||||||
|
// 整定步骤
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MINOR_ADJUST_IDEL,
|
||||||
|
MINOR_ADJUST_OVER,
|
||||||
|
|
||||||
|
} minor_adjust_step_e;
|
||||||
|
|
||||||
|
/*********************************** 结构体 ***********************************/
|
||||||
|
// 滤波器
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
uint8_t tuned_flag; // 是否整定过 1:整定过 0:未整定过
|
lpf_window_t *handle;
|
||||||
uint8_t tuned_state; // 自整定结果
|
uint16_t value;
|
||||||
|
|
||||||
uint16_t startup_value; // 阀位启动值
|
} minor_filter_t;
|
||||||
uint16_t arr_diff; // 控制区间
|
|
||||||
uint16_t ad_diff; // 磁条区间
|
// 执行器
|
||||||
uint16_t pwmp_min; // 控制最小值
|
typedef struct
|
||||||
uint16_t pwmp_max; // 控制最大值
|
{
|
||||||
uint16_t pwmp_min_origin;// 整定控制最小值
|
execute_e code; // 执行标志
|
||||||
uint16_t pwmp_max_origin;// 整定控制最大值
|
uint16_t dac; // 输出值
|
||||||
uint16_t trip_0; // 磁条0位置AD
|
} execute_rsp_t;
|
||||||
uint16_t trip_100; // 词条100位置AD
|
|
||||||
uint16_t trip_min0; // 小回路行程0位置AD
|
// 存储数据
|
||||||
uint16_t trip_min100; // 小回路行程100位置AD
|
typedef struct
|
||||||
uint16_t current0; // 电流最小值
|
{
|
||||||
uint16_t current100; // 电流最大值
|
|
||||||
uint16_t all_open_time; // 全开时间
|
|
||||||
uint16_t all_close_time; // 全关时间
|
|
||||||
uint16_t prov_flag; // 磁条安装的正反:倒装:0 正装:1
|
|
||||||
uint16_t valve_type; // 阀门正反行程:气开:ATO 气关:ATC
|
|
||||||
float32 kp;
|
|
||||||
float32 ki;
|
|
||||||
float32 kd;
|
|
||||||
} mode_pwmp_hd_storage_data_t;
|
} mode_pwmp_hd_storage_data_t;
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
uint8_t data[128];
|
||||||
|
mode_pwmp_hd_storage_data_t storage;
|
||||||
|
|
||||||
|
} mode_pwmp_hd_params_u;
|
||||||
|
|
||||||
|
// 测试任务
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint16_t output;
|
||||||
|
uint16_t travel_adc;
|
||||||
|
uint16_t minor_adc;
|
||||||
|
float32 drive_current;
|
||||||
|
|
||||||
|
} minor_test_t;
|
||||||
|
|
||||||
|
// 整定任务
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BOOL enable; // 整定使能
|
||||||
|
minor_adjust_step_e step; // 当前整定步骤
|
||||||
|
minor_adjust_step_e next_step; // 下个整定步骤
|
||||||
|
minor_adjust_step_e execute_step; // 执行整定步骤
|
||||||
|
|
||||||
|
} minor_adjust_t;
|
||||||
|
|
||||||
|
// 控制任务
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
__IO uint32_t enter_count; // 用于100ms蓝牙输出计时器
|
__IO uint32_t enter_count; // 用于100ms蓝牙输出计时器
|
||||||
|
@ -61,217 +110,30 @@ typedef struct
|
||||||
float32 ctrl_feedback; // 反馈值
|
float32 ctrl_feedback; // 反馈值
|
||||||
float32 real_error; // 实际误差
|
float32 real_error; // 实际误差
|
||||||
uint16_t current_adc; // 当前ADC值
|
uint16_t current_adc; // 当前ADC值
|
||||||
} mode_pwmp_hd_control_t;
|
|
||||||
|
|
||||||
/*滤波处理*/
|
} minor_control_t;
|
||||||
|
|
||||||
|
// 小回路模式句柄
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
lpf_t actual_lpf;
|
uint8_t process_state; // 当前任务
|
||||||
lpf_t target_lpf;
|
uint8_t adjust_state; // 整定状态
|
||||||
lpf_window_t *handle;
|
minor_filter_t target_lpf; // 目标滤波器
|
||||||
} mode_pwmp_hd_filter_t;
|
minor_filter_t actual_lpf; // 实际滤波器
|
||||||
|
execute_rsp_t execute; // 执行器
|
||||||
|
minor_test_t test; // 测试任务
|
||||||
|
minor_adjust_t adjust; // 整定任务
|
||||||
|
minor_control_t control; // 控制任务
|
||||||
|
mode_pwmp_hd_params_u *save; // 存储数据
|
||||||
|
void (*params_save_cb)(void); // 存储函数
|
||||||
|
} mode_minor_t;
|
||||||
|
|
||||||
typedef union
|
/*********************************** 外部声明 ***********************************/
|
||||||
{
|
extern mode_minor_t *mode_minor;
|
||||||
uint8_t data[128];
|
|
||||||
// 自定义数据结构
|
|
||||||
mode_pwmp_hd_storage_data_t storage;
|
|
||||||
} mode_pwmp_hd_params_u;
|
|
||||||
|
|
||||||
typedef struct
|
void mode_minor_init(uint16_t positioner_model, mode_pwmp_hd_params_u *params, void (*params_save_cb)(void));
|
||||||
{
|
void mode_minor_dinit(void);
|
||||||
uint8_t lcd_adjust_state; // LCD自整定流程状态
|
void mode_minor_process(void);
|
||||||
float32 duty_percent; // 占空比
|
void minor_process_state_set(mode_minor_process_state_e state);
|
||||||
float32 current_electric; // 电流
|
|
||||||
|
|
||||||
uint8_t auto_tune_state; // 自整定状态 0:未整定 1:整定中 2:整定完成 3:整定失败
|
|
||||||
uint16_t wait_count_max; // 等待次数最大值
|
|
||||||
uint16_t arr_default; // 默认值array,推动值
|
|
||||||
uint8_t process_state; // 处理状态
|
|
||||||
uint8_t adjust_state; // 整定状态
|
|
||||||
uint16_t output; // 输出值
|
|
||||||
uint16_t current_adc; // 当前位置反馈的AD值
|
|
||||||
uint32_t count; // 计数
|
|
||||||
|
|
||||||
mode_pwmp_hd_control_t control;
|
|
||||||
mode_pwmp_hd_filter_t filter;
|
|
||||||
mode_pwmp_hd_params_u *pwmp_save;
|
|
||||||
void (*params_save_cb)(void);
|
|
||||||
} mode_pwmp_hd_t;
|
|
||||||
|
|
||||||
/////////////////////////////////////////*共用部分BEGIN*////////////////////////////////////////////////
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PWMP_HD_ADJUST_IDEL,
|
|
||||||
PWMP_HD_ADJUST_ROUGH_POSITION0, // 粗调位置0
|
|
||||||
PWMP_HD_ADJUST_ACCURATE_POSITION0, // 精调位置0
|
|
||||||
PWMP_HD_ADJUST_ROUGH_POSITION100, // 粗调位置100
|
|
||||||
PWMP_HD_ADJUST_ACCURATE_POSITION100, // 精调位置100
|
|
||||||
PWMP_HD_ADJUST_ALL_CLOSE_TIME, // 全关时间
|
|
||||||
PWMP_HD_ADJUST_ALL_OPEN_TIME, // 全开时间
|
|
||||||
PWMP_HD_ADJUST_CALCULATE, // 阀门参数计算
|
|
||||||
PWMP_HD_ADJUST_PID_CALCULATE, // PID参数计算
|
|
||||||
PWMP_HD_ADJUST_PID_TUNING, // PID参数自整定过程(整定得到K、T、L)
|
|
||||||
PWMP_HD_ADJUST_SAVE, // 存储变量
|
|
||||||
PWMP_HD_ADJUST_BLEEDING, // 在整定状态中放气
|
|
||||||
PWMP_HD_ADJUST_BLEEDING_POSITION0, // 放气位置0
|
|
||||||
PWMP_HD_ADJUST_STOP,
|
|
||||||
PWMP_HD_ADJUST_FAIL, // 整定失败
|
|
||||||
PWMP_HD_ADJUST_TEST,
|
|
||||||
PWMP_HD_ADJUST_BLEEDING_TIMER,
|
|
||||||
PWMP_HD_ADJUST_AERATE_TIMER,
|
|
||||||
PWMP_HD_ADJUST_TUNING,
|
|
||||||
} mode_pwmp_hd_adjust_state_e; // 整定状态
|
|
||||||
|
|
||||||
#define PWMP_HD_ADJUST_STEP LCD_ADJUST_STOP // 整定步骤
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
// 自整定结果 0:未整定 1:整定中 2:整定完成 3:整定失败
|
|
||||||
PWMP_HD_ADJUST_RESULT_IDEL = 0,
|
|
||||||
PWMP_HD_ADJUST_RESULT_TUNING,
|
|
||||||
PWMP_HD_ADJUST_RESULT_SUCCESS,
|
|
||||||
PWMP_HD_ADJUST_RESULT_FAIL,
|
|
||||||
} mode_pwmp_hd_adjust_result_e; // 整定结果
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
mode_pwmp_hd_adjust_state_e adjust_state;
|
|
||||||
|
|
||||||
volatile uint16_t wait_count;
|
|
||||||
volatile uint16_t psb_adc;
|
|
||||||
volatile uint16_t last_adc;
|
|
||||||
uint8_t adc_count;
|
|
||||||
BOOL preheat;
|
|
||||||
|
|
||||||
BOOL adc_0_100_flag; // 判断0-100移动过程中ad值是增大还是减少,TRUE 增大,FALSE 减小
|
|
||||||
uint16_t adc_record_0; // 记录放气时阀门最小位置ad值
|
|
||||||
uint16_t adc_record_1; // 记录放气时阀门最小位置ad值
|
|
||||||
uint16_t adc_record_2; // 记录充气时阀门最大位置ad值
|
|
||||||
|
|
||||||
uint16_t arr_record_0; // 最低位置阀门的ad值
|
|
||||||
uint16_t arr_record_1; // 最小推动阀门的ad值
|
|
||||||
uint16_t arr_record_2; // 最大位置阀门的ad值
|
|
||||||
|
|
||||||
uint32_t all_open_time; // 全开时间
|
|
||||||
uint32_t all_open_time_full; // 信号为最大输出时的全开时间
|
|
||||||
uint32_t all_close_time; // 全关时间
|
|
||||||
BOOL all_close_time_flag;
|
|
||||||
uint32_t tmp_time; // 临时用来记录全开全关/整定时间
|
|
||||||
|
|
||||||
/*输出值*/
|
|
||||||
uint16_t arr_default; // 默认计数器(推动计数值)
|
|
||||||
volatile uint16_t arr_current; // 当前推动阀门的计数器
|
|
||||||
volatile uint16_t arr_last; // 上一次计数器值
|
|
||||||
} pwmp_hd_adjust_t;
|
|
||||||
|
|
||||||
/////////////////////////////////////////*共用部分END*//////////////////////////////////////////////////
|
|
||||||
|
|
||||||
/////////////////////////////////////////*PID参数自整定部分BEGIN*////////////////////////////////////////
|
|
||||||
/*PID整定方法*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
PID_AUTOTUNE_WAY_ZN = 1,
|
|
||||||
PID_AUTOTUNE_WAY_CC,
|
|
||||||
} pid_autotune_way_e;
|
|
||||||
|
|
||||||
/*阶跃信号大小*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
FULL_TRIP = 1,
|
|
||||||
HALF_TRIP,
|
|
||||||
SMALL_TRIP,
|
|
||||||
} step_signal_value;
|
|
||||||
|
|
||||||
/*PID整定过程数据*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
float32 pre_actual; // 前一次的行程
|
|
||||||
float32 cur_actual; // 当前的行程
|
|
||||||
float32 adjust_tmp_actual; // 临时行程
|
|
||||||
float32 actual_error; // 行程的误差
|
|
||||||
float32 step_signal; // 阶跃信号
|
|
||||||
float32 step_signal_delt; // 阶跃信号差值
|
|
||||||
float32 ouput_signal_delta; // 输出信号差值
|
|
||||||
float32 input_range; // 输入范围
|
|
||||||
float32 output_range; // 输出范围
|
|
||||||
float32 input_scale; // 输入比例
|
|
||||||
float32 output_scale; // 输出比例
|
|
||||||
float32 slope; // 变化率
|
|
||||||
float32 slope_Max; // 最大变化率
|
|
||||||
float32 actual_slope_Max; // 最大变化率时的行程
|
|
||||||
uint32_t pid_autotune_time_origin; // PID自整定初始时间
|
|
||||||
uint32_t time_slope_Max; // 最大变化率时的时间节点
|
|
||||||
uint32_t time_Runing; // 自整定程序运行的总时间
|
|
||||||
float32 actual_stable; // 稳定时的阀位
|
|
||||||
float32 k; // 切线斜率
|
|
||||||
float32 b; // 切线截距
|
|
||||||
} pid_auto_process_data;
|
|
||||||
|
|
||||||
/*PID参数自整定主体结构体*/
|
|
||||||
typedef struct PID_AUTOTUNE_HD
|
|
||||||
{
|
|
||||||
uint8_t autotune_way; // 整定的方式
|
|
||||||
uint8_t signal_value; // 阶跃信号的大小
|
|
||||||
float32 k_hd; // 增益
|
|
||||||
float32 t_hd; // 时间常数
|
|
||||||
float32 l_hd; // 延时时间
|
|
||||||
float32 p_auto_hd; // 整定输出的P参数
|
|
||||||
float32 i_auto_hd; // 整定输出的I参数
|
|
||||||
float32 d_auto_hd; // 整定输出的D参数
|
|
||||||
float32 ti_auto_hd; // 整定得到的积分时间
|
|
||||||
float32 td_auto_hd; // 整定得到的微分时间
|
|
||||||
pid_auto_process_data data; // 过程数据
|
|
||||||
lpf_t actual_auto_lpf; // 滤波后的行程
|
|
||||||
} pid_autotune_hd_t;
|
|
||||||
|
|
||||||
/////////////////////////////////////////*PID参数自整定部分END*////////////////////////////////////////
|
|
||||||
|
|
||||||
/////////////////////////////////////////*控制算法BEGIN*////////////////////////////////////////
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
EXECUTE_PLAN_1,
|
|
||||||
EXECUTE_PLAN_2,
|
|
||||||
EXECUTE_PLAN_3,
|
|
||||||
EXECUTE_PLAN_4,
|
|
||||||
} execute_plan_hd_e;
|
|
||||||
|
|
||||||
/// 操作标志
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
EXECUTE_HD_NONE = 0, ///< 不执行任何操作
|
|
||||||
EXECUTE_HD_OUT = 1, ///< 执行输出
|
|
||||||
} execute_hd_e;
|
|
||||||
|
|
||||||
/// 返回内容
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
execute_hd_e code; ///< 操作标志
|
|
||||||
uint16_t dac; ///< DAC值
|
|
||||||
} execute_rsp_hd_t;
|
|
||||||
/////////////////////////////////////////*控制算法END*////////////////////////////////////////
|
|
||||||
|
|
||||||
void mode_pwmp_hd_init(uint16_t positioner_model, mode_pwmp_hd_params_u *params, void (*params_save_cb)(void));
|
|
||||||
void mode_pwmp_hd_dinit(void);
|
|
||||||
void mode_pwmp_hd_process(void);
|
|
||||||
void pwmp_hd_process_state_set(mode_pwmp_hd_process_state_e state);
|
|
||||||
// extern void pwmp_control_update(filter_e type);
|
|
||||||
extern mode_pwmp_hd_t *mode_pwmp_hd;
|
|
||||||
#endif // __MODE_PWMP_HD_H__
|
#endif // __MODE_PWMP_HD_H__
|
||||||
|
|
||||||
/* 控制范围
|
|
||||||
* 实验室大阀(气关): static int16_t mode_pwmp->pwmp_save->storage.pwmp_min = 613;
|
|
||||||
static int16_t mode_pwmp->pwmp_save->storage.pwmp_max = 900;
|
|
||||||
|
|
||||||
实验台中型阀(气开): static int16_t mode_pwmp->pwmp_save->storage.pwmp_min = 1100;
|
|
||||||
static int16_t mode_pwmp->pwmp_save->storage.pwmp_max = 2000;
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*位置传感器区间
|
|
||||||
实验室大阀(60mm,气关): uDevice.TravelVol100 = 1547;
|
|
||||||
uDevice.TravelVol0 = 2520;
|
|
||||||
|
|
||||||
流量实验室中型阀(40mm,气开): uDevice.TravelVol100 = 1583;
|
|
||||||
uDevice.TravelVol0 = 2506;
|
|
||||||
*/
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ typedef enum
|
||||||
PDCTRL_DAC = 1, // DAC输出模式
|
PDCTRL_DAC = 1, // DAC输出模式
|
||||||
PDCTRL_PWM = 2, // PWM输出模式
|
PDCTRL_PWM = 2, // PWM输出模式
|
||||||
PDCTRL_PWMP = 3, // PWM占空比模式
|
PDCTRL_PWMP = 3, // PWM占空比模式
|
||||||
PDCTRL_PWMP_HD = 4, // PWM占空比模式
|
PDCTRL_MINOR = 4, // PWM占空比模式
|
||||||
} pdctrl_mode_e;
|
} pdctrl_mode_e;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
|
@ -172,9 +172,9 @@ void alog_control_module(void)
|
||||||
{
|
{
|
||||||
mode_pwmp_process();
|
mode_pwmp_process();
|
||||||
}
|
}
|
||||||
else if (uDevice.SpecControlOutputMode == PDCTRL_PWMP_HD)
|
else if (uDevice.SpecControlOutputMode == PDCTRL_MINOR)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_process();
|
mode_minor_process();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -205,8 +205,8 @@ void mode_adjust_start(void)
|
||||||
case PDCTRL_PWMP:
|
case PDCTRL_PWMP:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case PDCTRL_PWMP_HD:
|
case PDCTRL_MINOR:
|
||||||
pwmp_hd_process_state_set(PWMP_HD_PROCESS_ADJUST);
|
minor_process_state_set(MINOR_PROCESS_ADJUST);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -228,8 +228,8 @@ void mode_adjust_stop(void)
|
||||||
break;
|
break;
|
||||||
case PDCTRL_PWMP:
|
case PDCTRL_PWMP:
|
||||||
break;
|
break;
|
||||||
case PDCTRL_PWMP_HD:
|
case PDCTRL_MINOR:
|
||||||
pwmp_hd_process_state_set(PWMP_HD_PROCESS_STOP);
|
minor_process_state_set(MINOR_PROCESS_STOP);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -390,19 +390,8 @@ void mode_adjust_data_get(mode_adjust_data_t *data)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PDCTRL_PWMP_HD:
|
case PDCTRL_MINOR:
|
||||||
{
|
{
|
||||||
data->pos0 = mode_params.mode_pwmp_hd_params.storage.trip_0; ///< 位置0 ad
|
|
||||||
data->pos100 = mode_params.mode_pwmp_hd_params.storage.trip_100; ///< 位置100 ad
|
|
||||||
data->pot0 = mode_params.mode_pwmp_hd_params.storage.pwmp_min; ///< 位置0 输出
|
|
||||||
data->pot100 = mode_params.mode_pwmp_hd_params.storage.pwmp_max; ///< 位置100 输出
|
|
||||||
data->current0 = mode_params.mode_pwmp_hd_params.storage.current0; ///< 位置0 电流(毫安,放大100倍, 0.01ma=1)
|
|
||||||
data->current100 = mode_params.mode_pwmp_hd_params.storage.current100; ///< 位置100 电流(毫安,放大100倍,0.01ma=1)
|
|
||||||
data->open_time = mode_params.mode_pwmp_hd_params.storage.all_open_time; ///< 全开时间(秒)
|
|
||||||
data->close_time = mode_params.mode_pwmp_hd_params.storage.all_close_time; ///< 全关时间(秒)
|
|
||||||
data->kp = mode_params.mode_pwmp_hd_params.storage.kp; ///< pid 比例系数
|
|
||||||
data->ki = mode_params.mode_pwmp_hd_params.storage.ki; ///< pid 积分系数
|
|
||||||
data->kd = mode_params.mode_pwmp_hd_params.storage.kd; ///< pid 微分系数
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -422,7 +411,7 @@ void mode_init(void)
|
||||||
mode_dac_dinit();
|
mode_dac_dinit();
|
||||||
mode_pwm_dinit();
|
mode_pwm_dinit();
|
||||||
mode_pwmp_dinit();
|
mode_pwmp_dinit();
|
||||||
mode_pwmp_hd_dinit();
|
mode_minor_dinit();
|
||||||
|
|
||||||
if (uDevice.SpecControlOutputMode == PDCTRL_DAC)
|
if (uDevice.SpecControlOutputMode == PDCTRL_DAC)
|
||||||
{
|
{
|
||||||
|
@ -433,10 +422,10 @@ void mode_init(void)
|
||||||
else if (uDevice.SpecControlOutputMode == PDCTRL_PWMP)
|
else if (uDevice.SpecControlOutputMode == PDCTRL_PWMP)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
else if (uDevice.SpecControlOutputMode == PDCTRL_PWMP_HD)
|
else if (uDevice.SpecControlOutputMode == PDCTRL_MINOR)
|
||||||
{
|
{
|
||||||
pdctrl_init(PDCTRL_PWMP_HD);
|
pdctrl_init(PDCTRL_MINOR);
|
||||||
mode_pwmp_hd_init(uDevice.positioner_model, &mode_params.mode_pwmp_hd_params, mode_params_save_cb);
|
mode_minor_init(uDevice.positioner_model, &mode_params.mode_pwmp_hd_params, mode_params_save_cb);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -134,7 +134,7 @@ void params_restart(void)
|
||||||
// 阀门类型
|
// 阀门类型
|
||||||
uDevice.eAirAction = ATO;
|
uDevice.eAirAction = ATO;
|
||||||
// 定位器控制输出模式
|
// 定位器控制输出模式
|
||||||
uDevice.SpecControlOutputMode = PDCTRL_PWMP_HD;
|
uDevice.SpecControlOutputMode = PDCTRL_MINOR;
|
||||||
// 行程类型, 直行程/角行程
|
// 行程类型, 直行程/角行程
|
||||||
uDevice.eTravelType = TRAVEL_TYPE_STRAIGHT;
|
uDevice.eTravelType = TRAVEL_TYPE_STRAIGHT;
|
||||||
// 行程范围,直行程:0, 16mm、25mm、40mm、60mm、100mm、130mm、160mm、200mm
|
// 行程范围,直行程:0, 16mm、25mm、40mm、60mm、100mm、130mm、160mm、200mm
|
||||||
|
|
|
@ -73,7 +73,7 @@ void pdctrl_init(pdctrl_mode_e mode)
|
||||||
{
|
{
|
||||||
pwm_init();
|
pwm_init();
|
||||||
}
|
}
|
||||||
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_PWMP_HD)
|
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_MINOR)
|
||||||
{
|
{
|
||||||
pwmp_init();
|
pwmp_init();
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ void pdctrl_stop(void)
|
||||||
{
|
{
|
||||||
pwm_dinit();
|
pwm_dinit();
|
||||||
}
|
}
|
||||||
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_PWMP_HD)
|
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_MINOR)
|
||||||
{
|
{
|
||||||
pwmp_dinit();
|
pwmp_dinit();
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ void pdctrl_run(void)
|
||||||
{
|
{
|
||||||
pwm_init();
|
pwm_init();
|
||||||
}
|
}
|
||||||
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_PWMP_HD)
|
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_MINOR)
|
||||||
{
|
{
|
||||||
pwmp_init();
|
pwmp_init();
|
||||||
}
|
}
|
||||||
|
@ -250,7 +250,7 @@ void pdctrl_out(uint16_t out)
|
||||||
{
|
{
|
||||||
pdctrl_pwm_set_arr(out);
|
pdctrl_pwm_set_arr(out);
|
||||||
}
|
}
|
||||||
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_PWMP_HD)
|
else if (out_mode == PDCTRL_PWMP || out_mode == PDCTRL_MINOR)
|
||||||
{
|
{
|
||||||
#if PDCTRL_PWMP_CHINNEL == LL_TIM_CHANNEL_CH4
|
#if PDCTRL_PWMP_CHINNEL == LL_TIM_CHANNEL_CH4
|
||||||
PWM_SET_DUTY(PDCTRL_PWMP_TIM, 4, out);
|
PWM_SET_DUTY(PDCTRL_PWMP_TIM, 4, out);
|
||||||
|
|
Reference in New Issue