合并代码
This commit is contained in:
parent
066fdc65f1
commit
cbacb87051
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
/* Private includes ----------------------------------------------------------*/
|
/* Private includes ----------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
#include <stdio.h>
|
|
||||||
#include "bsp.h"
|
#include "bsp.h"
|
||||||
#include "delay.h"
|
#include "delay.h"
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
|
@ -68,6 +68,21 @@ void PeriphCommonClock_Config(void);
|
||||||
/* Private user code ---------------------------------------------------------*/
|
/* Private user code ---------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN 0 */
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write a character to a file stream, used for FLASHDB printf
|
||||||
|
*
|
||||||
|
* Writes the specified character to the given file stream and returns the written character.
|
||||||
|
*
|
||||||
|
* @param ch The character to be written
|
||||||
|
* @param stream Pointer to the file stream
|
||||||
|
*
|
||||||
|
* @return The written character
|
||||||
|
*/
|
||||||
|
int fputc(int ch, FILE *stream)
|
||||||
|
{
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,7 +92,6 @@ void PeriphCommonClock_Config(void);
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
/* MCU Configuration--------------------------------------------------------*/
|
/* MCU Configuration--------------------------------------------------------*/
|
||||||
|
@ -93,6 +107,7 @@ int main(void)
|
||||||
NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 15, 0));
|
NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 15, 0));
|
||||||
|
|
||||||
/* USER CODE BEGIN Init */
|
/* USER CODE BEGIN Init */
|
||||||
|
|
||||||
/* USER CODE END Init */
|
/* USER CODE END Init */
|
||||||
|
|
||||||
/* Configure the system clock */
|
/* Configure the system clock */
|
||||||
|
@ -103,8 +118,7 @@ int main(void)
|
||||||
|
|
||||||
/* USER CODE BEGIN SysInit */
|
/* USER CODE BEGIN SysInit */
|
||||||
delay_init((SystemCoreClock / 1000000));
|
delay_init((SystemCoreClock / 1000000));
|
||||||
delay_ms(500); // wait for power stable
|
// delay_ms(500); // wait for power stable
|
||||||
|
|
||||||
/* USER CODE END SysInit */
|
/* USER CODE END SysInit */
|
||||||
|
|
||||||
/* Initialize all configured peripherals */
|
/* Initialize all configured peripherals */
|
||||||
|
@ -124,12 +138,16 @@ int main(void)
|
||||||
MX_TIM16_Init();
|
MX_TIM16_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
|
hart_uart_dinit(); // HART serial port Deinitialization
|
||||||
|
hart_ble_dinit(); // Bluetooth Deinitialization
|
||||||
leds_dinit(); // LED Deinitialization
|
leds_dinit(); // LED Deinitialization
|
||||||
lcd_dinit(); // LCD screen Deinitialization
|
lcd_dinit(); // LCD screen Deinitialization
|
||||||
|
DISABLE_TIM(PDCTRL_PWM_TIM);
|
||||||
|
|
||||||
my_mem_init(SRAMIN); // Initialize internal memory pool 1
|
my_mem_init(SRAMIN); // Initialize internal memory pool 1
|
||||||
my_mem_init(SRAMEX); // Initialize external memory pool 2
|
my_mem_init(SRAMEX); // Initialize external memory pool 2
|
||||||
board_init(); // Initialize board
|
board_init(); // Initialize board
|
||||||
|
|
||||||
app_init(); // Initialize application
|
app_init(); // Initialize application
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
|
@ -164,31 +182,28 @@ void SystemClock_Config(void)
|
||||||
/* Wait till HSE is ready */
|
/* Wait till HSE is ready */
|
||||||
while (LL_RCC_HSE_IsReady() != 1)
|
while (LL_RCC_HSE_IsReady() != 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE, LL_RCC_PLLM_DIV_1, 8, LL_RCC_PLLR_DIV_2);
|
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE, LL_RCC_PLLM_DIV_2, 12, LL_RCC_PLLR_DIV_6);
|
||||||
LL_RCC_PLL_EnableDomain_SYS();
|
LL_RCC_PLL_EnableDomain_SYS();
|
||||||
LL_RCC_PLL_Enable();
|
LL_RCC_PLL_Enable();
|
||||||
|
|
||||||
/* Wait till PLL is ready */
|
/* Wait till PLL is ready */
|
||||||
while (LL_RCC_PLL_IsReady() != 1)
|
while (LL_RCC_PLL_IsReady() != 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
|
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
|
||||||
|
|
||||||
/* Wait till System clock is ready */
|
/* Wait till System clock is ready */
|
||||||
while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
|
while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_8);
|
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_2);
|
||||||
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
|
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
|
||||||
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
|
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
|
||||||
|
|
||||||
LL_Init1msTick(4000000);
|
LL_Init1msTick(5529600);
|
||||||
|
|
||||||
LL_SetSystemCoreClock(4000000);
|
LL_SetSystemCoreClock(5529600);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -197,14 +212,13 @@ void SystemClock_Config(void)
|
||||||
*/
|
*/
|
||||||
void PeriphCommonClock_Config(void)
|
void PeriphCommonClock_Config(void)
|
||||||
{
|
{
|
||||||
LL_RCC_PLLSAI1_ConfigDomain_ADC(LL_RCC_PLLSOURCE_HSE, LL_RCC_PLLM_DIV_1, 8, LL_RCC_PLLSAI1R_DIV_2);
|
LL_RCC_PLLSAI1_ConfigDomain_ADC(LL_RCC_PLLSOURCE_HSE, LL_RCC_PLLM_DIV_2, 12, LL_RCC_PLLSAI1R_DIV_8);
|
||||||
LL_RCC_PLLSAI1_EnableDomain_ADC();
|
LL_RCC_PLLSAI1_EnableDomain_ADC();
|
||||||
LL_RCC_PLLSAI1_Enable();
|
LL_RCC_PLLSAI1_Enable();
|
||||||
|
|
||||||
/* Wait till PLLSAI1 is ready */
|
/* Wait till PLLSAI1 is ready */
|
||||||
while (LL_RCC_PLLSAI1_IsReady() != 1)
|
while (LL_RCC_PLLSAI1_IsReady() != 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Auto generated Run-Time-Environment Configuration File
|
||||||
|
* *** Do not modify ! ***
|
||||||
|
*
|
||||||
|
* Project: 'controller'
|
||||||
|
* Target: 'controller-jlink'
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTE_COMPONENTS_H
|
||||||
|
#define RTE_COMPONENTS_H
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define the Device Header File:
|
||||||
|
*/
|
||||||
|
#define CMSIS_device_header "stm32l4xx.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* RTE_COMPONENTS_H */
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
|
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
|
||||||
|
|
||||||
<SchemaVersion>1.0</SchemaVersion>
|
<SchemaVersion>1.0</SchemaVersion>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
<TargetOption>
|
<TargetOption>
|
||||||
<CLKADS>8000000</CLKADS>
|
<CLKADS>8000000</CLKADS>
|
||||||
<OPTTT>
|
<OPTTT>
|
||||||
<gFlags>0</gFlags>
|
<gFlags>1</gFlags>
|
||||||
<BeepAtEnd>1</BeepAtEnd>
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
<RunSim>0</RunSim>
|
<RunSim>0</RunSim>
|
||||||
<RunTarget>1</RunTarget>
|
<RunTarget>1</RunTarget>
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<PageWidth>79</PageWidth>
|
<PageWidth>79</PageWidth>
|
||||||
<PageLength>66</PageLength>
|
<PageLength>66</PageLength>
|
||||||
<TabStop>8</TabStop>
|
<TabStop>8</TabStop>
|
||||||
<ListingPath />
|
<ListingPath></ListingPath>
|
||||||
</OPTLEX>
|
</OPTLEX>
|
||||||
<ListingPage>
|
<ListingPage>
|
||||||
<CreateCListing>1</CreateCListing>
|
<CreateCListing>1</CreateCListing>
|
||||||
|
@ -103,18 +103,18 @@
|
||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>0</nTsel>
|
<nTsel>6</nTsel>
|
||||||
<sDll />
|
<sDll></sDll>
|
||||||
<sDllPa />
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll />
|
<sDlgDll></sDlgDll>
|
||||||
<sDlgPa />
|
<sDlgPa></sDlgPa>
|
||||||
<sIfile />
|
<sIfile></sIfile>
|
||||||
<tDll />
|
<tDll></tDll>
|
||||||
<tDllPa />
|
<tDllPa></tDllPa>
|
||||||
<tDlgDll />
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa />
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile />
|
<tIfile></tIfile>
|
||||||
<pMon>BIN\UL2CM3.DLL</pMon>
|
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
|
@ -153,19 +153,19 @@
|
||||||
<newCpu>0</newCpu>
|
<newCpu>0</newCpu>
|
||||||
<uProt>0</uProt>
|
<uProt>0</uProt>
|
||||||
</DebugFlag>
|
</DebugFlag>
|
||||||
<LintExecutable />
|
<LintExecutable></LintExecutable>
|
||||||
<LintConfigFile />
|
<LintConfigFile></LintConfigFile>
|
||||||
<bLintAuto>0</bLintAuto>
|
<bLintAuto>0</bLintAuto>
|
||||||
<bAutoGenD>0</bAutoGenD>
|
<bAutoGenD>0</bAutoGenD>
|
||||||
<LntExFlags>0</LntExFlags>
|
<LntExFlags>0</LntExFlags>
|
||||||
<pMisraName />
|
<pMisraName></pMisraName>
|
||||||
<pszMrule />
|
<pszMrule></pszMrule>
|
||||||
<pSingCmds />
|
<pSingCmds></pSingCmds>
|
||||||
<pMultCmds />
|
<pMultCmds></pMultCmds>
|
||||||
<pMisraNamep />
|
<pMisraNamep></pMisraNamep>
|
||||||
<pszMrulep />
|
<pszMrulep></pszMrulep>
|
||||||
<pSingCmdsp />
|
<pSingCmdsp></pSingCmdsp>
|
||||||
<pMultCmdsp />
|
<pMultCmdsp></pMultCmdsp>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
<Enable>1</Enable>
|
<Enable>1</Enable>
|
||||||
<EnableFlashSeq>1</EnableFlashSeq>
|
<EnableFlashSeq>1</EnableFlashSeq>
|
||||||
|
@ -183,10 +183,10 @@
|
||||||
<TargetOption>
|
<TargetOption>
|
||||||
<CLKADS>12000000</CLKADS>
|
<CLKADS>12000000</CLKADS>
|
||||||
<OPTTT>
|
<OPTTT>
|
||||||
<gFlags>0</gFlags>
|
<gFlags>1</gFlags>
|
||||||
<BeepAtEnd>1</BeepAtEnd>
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
<RunSim>1</RunSim>
|
<RunSim>0</RunSim>
|
||||||
<RunTarget>0</RunTarget>
|
<RunTarget>1</RunTarget>
|
||||||
<RunAbUc>0</RunAbUc>
|
<RunAbUc>0</RunAbUc>
|
||||||
</OPTTT>
|
</OPTTT>
|
||||||
<OPTHX>
|
<OPTHX>
|
||||||
|
@ -200,7 +200,7 @@
|
||||||
<PageWidth>79</PageWidth>
|
<PageWidth>79</PageWidth>
|
||||||
<PageLength>66</PageLength>
|
<PageLength>66</PageLength>
|
||||||
<TabStop>8</TabStop>
|
<TabStop>8</TabStop>
|
||||||
<ListingPath />
|
<ListingPath></ListingPath>
|
||||||
</OPTLEX>
|
</OPTLEX>
|
||||||
<ListingPage>
|
<ListingPage>
|
||||||
<CreateCListing>1</CreateCListing>
|
<CreateCListing>1</CreateCListing>
|
||||||
|
@ -234,8 +234,8 @@
|
||||||
</OPTFL>
|
</OPTFL>
|
||||||
<CpuCode>18</CpuCode>
|
<CpuCode>18</CpuCode>
|
||||||
<DebugOpt>
|
<DebugOpt>
|
||||||
<uSim>1</uSim>
|
<uSim>0</uSim>
|
||||||
<uTrg>0</uTrg>
|
<uTrg>1</uTrg>
|
||||||
<sLdApp>1</sLdApp>
|
<sLdApp>1</sLdApp>
|
||||||
<sGomain>1</sGomain>
|
<sGomain>1</sGomain>
|
||||||
<sRbreak>1</sRbreak>
|
<sRbreak>1</sRbreak>
|
||||||
|
@ -244,7 +244,7 @@
|
||||||
<sRfunc>1</sRfunc>
|
<sRfunc>1</sRfunc>
|
||||||
<sRbox>1</sRbox>
|
<sRbox>1</sRbox>
|
||||||
<tLdApp>1</tLdApp>
|
<tLdApp>1</tLdApp>
|
||||||
<tGomain>0</tGomain>
|
<tGomain>1</tGomain>
|
||||||
<tRbreak>1</tRbreak>
|
<tRbreak>1</tRbreak>
|
||||||
<tRwatch>1</tRwatch>
|
<tRwatch>1</tRwatch>
|
||||||
<tRmem>1</tRmem>
|
<tRmem>1</tRmem>
|
||||||
|
@ -258,19 +258,26 @@
|
||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>-1</nTsel>
|
<nTsel>4</nTsel>
|
||||||
<sDll />
|
<sDll></sDll>
|
||||||
<sDllPa />
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll />
|
<sDlgDll></sDlgDll>
|
||||||
<sDlgPa />
|
<sDlgPa></sDlgPa>
|
||||||
<sIfile />
|
<sIfile></sIfile>
|
||||||
<tDll />
|
<tDll></tDll>
|
||||||
<tDllPa />
|
<tDllPa></tDllPa>
|
||||||
<tDlgDll />
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa />
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile />
|
<tIfile></tIfile>
|
||||||
<pMon />
|
<pMon>Segger\JL2CM3.dll</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>UL2CM3</Key>
|
||||||
|
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476VGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint/>
|
<Breakpoint/>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
|
@ -301,19 +308,26 @@
|
||||||
<newCpu>0</newCpu>
|
<newCpu>0</newCpu>
|
||||||
<uProt>0</uProt>
|
<uProt>0</uProt>
|
||||||
</DebugFlag>
|
</DebugFlag>
|
||||||
<LintExecutable />
|
<LintExecutable></LintExecutable>
|
||||||
<LintConfigFile />
|
<LintConfigFile></LintConfigFile>
|
||||||
<bLintAuto>0</bLintAuto>
|
<bLintAuto>0</bLintAuto>
|
||||||
<bAutoGenD>0</bAutoGenD>
|
<bAutoGenD>0</bAutoGenD>
|
||||||
<LntExFlags>0</LntExFlags>
|
<LntExFlags>0</LntExFlags>
|
||||||
<pMisraName />
|
<pMisraName></pMisraName>
|
||||||
<pszMrule />
|
<pszMrule></pszMrule>
|
||||||
<pSingCmds />
|
<pSingCmds></pSingCmds>
|
||||||
<pMultCmds />
|
<pMultCmds></pMultCmds>
|
||||||
<pMisraNamep />
|
<pMisraNamep></pMisraNamep>
|
||||||
<pszMrulep />
|
<pszMrulep></pszMrulep>
|
||||||
<pSingCmdsp />
|
<pSingCmdsp></pSingCmdsp>
|
||||||
<pMultCmdsp />
|
<pMultCmdsp></pMultCmdsp>
|
||||||
|
<DebugDescription>
|
||||||
|
<Enable>1</Enable>
|
||||||
|
<EnableFlashSeq>1</EnableFlashSeq>
|
||||||
|
<EnableLog>0</EnableLog>
|
||||||
|
<Protocol>2</Protocol>
|
||||||
|
<DbgClock>10000000</DbgClock>
|
||||||
|
</DebugDescription>
|
||||||
</TargetOption>
|
</TargetOption>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
@ -324,7 +338,7 @@
|
||||||
<TargetOption>
|
<TargetOption>
|
||||||
<CLKADS>12000000</CLKADS>
|
<CLKADS>12000000</CLKADS>
|
||||||
<OPTTT>
|
<OPTTT>
|
||||||
<gFlags>0</gFlags>
|
<gFlags>1</gFlags>
|
||||||
<BeepAtEnd>1</BeepAtEnd>
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
<RunSim>0</RunSim>
|
<RunSim>0</RunSim>
|
||||||
<RunTarget>1</RunTarget>
|
<RunTarget>1</RunTarget>
|
||||||
|
@ -341,7 +355,7 @@
|
||||||
<PageWidth>79</PageWidth>
|
<PageWidth>79</PageWidth>
|
||||||
<PageLength>66</PageLength>
|
<PageLength>66</PageLength>
|
||||||
<TabStop>8</TabStop>
|
<TabStop>8</TabStop>
|
||||||
<ListingPath />
|
<ListingPath></ListingPath>
|
||||||
</OPTLEX>
|
</OPTLEX>
|
||||||
<ListingPage>
|
<ListingPage>
|
||||||
<CreateCListing>1</CreateCListing>
|
<CreateCListing>1</CreateCListing>
|
||||||
|
@ -399,20 +413,45 @@
|
||||||
<bEvRecOn>1</bEvRecOn>
|
<bEvRecOn>1</bEvRecOn>
|
||||||
<bSchkAxf>0</bSchkAxf>
|
<bSchkAxf>0</bSchkAxf>
|
||||||
<bTchkAxf>0</bTchkAxf>
|
<bTchkAxf>0</bTchkAxf>
|
||||||
<nTsel>0</nTsel>
|
<nTsel>6</nTsel>
|
||||||
<sDll />
|
<sDll></sDll>
|
||||||
<sDllPa />
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll />
|
<sDlgDll></sDlgDll>
|
||||||
<sDlgPa />
|
<sDlgPa></sDlgPa>
|
||||||
<sIfile />
|
<sIfile></sIfile>
|
||||||
<tDll />
|
<tDll></tDll>
|
||||||
<tDllPa />
|
<tDllPa></tDllPa>
|
||||||
<tDlgDll />
|
<tDlgDll></tDlgDll>
|
||||||
<tDlgPa />
|
<tDlgPa></tDlgPa>
|
||||||
<tIfile />
|
<tIfile></tIfile>
|
||||||
<pMon>BIN\UL2CM3.DLL</pMon>
|
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMRTXEVENTFLAGS</Key>
|
||||||
|
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGTARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMDBGFLAGS</Key>
|
||||||
|
<Name></Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||||
|
<Name>-U-O206 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32L476VGTx$CMSIS\Flash\STM32L4xx_1024.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGUARM</Key>
|
||||||
|
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>UL2CM3</Key>
|
<Key>UL2CM3</Key>
|
||||||
|
@ -420,18 +459,30 @@
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
</TargetDriverDllRegistry>
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint/>
|
<Breakpoint/>
|
||||||
|
<WatchWindow1>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>params_reset</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>udevice.wireless_enable</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow1>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
</Tracepoint>
|
</Tracepoint>
|
||||||
<DebugFlag>
|
<DebugFlag>
|
||||||
<trace>0</trace>
|
<trace>0</trace>
|
||||||
<periodic>0</periodic>
|
<periodic>1</periodic>
|
||||||
<aLwin>0</aLwin>
|
<aLwin>1</aLwin>
|
||||||
<aCover>0</aCover>
|
<aCover>0</aCover>
|
||||||
<aSer1>0</aSer1>
|
<aSer1>0</aSer1>
|
||||||
<aSer2>0</aSer2>
|
<aSer2>0</aSer2>
|
||||||
<aPa>0</aPa>
|
<aPa>0</aPa>
|
||||||
<viewmode>0</viewmode>
|
<viewmode>1</viewmode>
|
||||||
<vrSel>0</vrSel>
|
<vrSel>0</vrSel>
|
||||||
<aSym>0</aSym>
|
<aSym>0</aSym>
|
||||||
<aTbox>0</aTbox>
|
<aTbox>0</aTbox>
|
||||||
|
@ -449,22 +500,22 @@
|
||||||
<newCpu>0</newCpu>
|
<newCpu>0</newCpu>
|
||||||
<uProt>0</uProt>
|
<uProt>0</uProt>
|
||||||
</DebugFlag>
|
</DebugFlag>
|
||||||
<LintExecutable />
|
<LintExecutable></LintExecutable>
|
||||||
<LintConfigFile />
|
<LintConfigFile></LintConfigFile>
|
||||||
<bLintAuto>0</bLintAuto>
|
<bLintAuto>0</bLintAuto>
|
||||||
<bAutoGenD>0</bAutoGenD>
|
<bAutoGenD>0</bAutoGenD>
|
||||||
<LntExFlags>0</LntExFlags>
|
<LntExFlags>0</LntExFlags>
|
||||||
<pMisraName />
|
<pMisraName></pMisraName>
|
||||||
<pszMrule />
|
<pszMrule></pszMrule>
|
||||||
<pSingCmds />
|
<pSingCmds></pSingCmds>
|
||||||
<pMultCmds />
|
<pMultCmds></pMultCmds>
|
||||||
<pMisraNamep />
|
<pMisraNamep></pMisraNamep>
|
||||||
<pszMrulep />
|
<pszMrulep></pszMrulep>
|
||||||
<pSingCmdsp />
|
<pSingCmdsp></pSingCmdsp>
|
||||||
<pMultCmdsp />
|
<pMultCmdsp></pMultCmdsp>
|
||||||
<DebugDescription>
|
<DebugDescription>
|
||||||
<Enable>1</Enable>
|
<Enable>1</Enable>
|
||||||
<EnableFlashSeq>1</EnableFlashSeq>
|
<EnableFlashSeq>0</EnableFlashSeq>
|
||||||
<EnableLog>0</EnableLog>
|
<EnableLog>0</EnableLog>
|
||||||
<Protocol>2</Protocol>
|
<Protocol>2</Protocol>
|
||||||
<DbgClock>10000000</DbgClock>
|
<DbgClock>10000000</DbgClock>
|
||||||
|
@ -941,8 +992,8 @@
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/hart</GroupName>
|
<GroupName>User/application/mode</GroupName>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
|
@ -953,8 +1004,8 @@
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\User\hart\hart.c</PathWithFileName>
|
<PathWithFileName>..\User\application\mode\mode.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>hart.c</FilenameWithoutPath>
|
<FilenameWithoutPath>mode.c</FilenameWithoutPath>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
@ -965,14 +1016,46 @@
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\User\application\mode\mode_pwmp_hd.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>mode_pwmp_hd.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>User/hart</GroupName>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>8</GroupNumber>
|
||||||
|
<FileNumber>38</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\User\hart\hart.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>hart.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>8</GroupNumber>
|
||||||
|
<FileNumber>39</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\User\hart\hart_frame.c</PathWithFileName>
|
<PathWithFileName>..\User\hart\hart_frame.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>hart_frame.c</FilenameWithoutPath>
|
<FilenameWithoutPath>hart_frame.c</FilenameWithoutPath>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>38</FileNumber>
|
<FileNumber>40</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -983,8 +1066,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>39</FileNumber>
|
<FileNumber>41</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -995,8 +1078,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>40</FileNumber>
|
<FileNumber>42</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1007,8 +1090,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>41</FileNumber>
|
<FileNumber>43</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1019,8 +1102,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>42</FileNumber>
|
<FileNumber>44</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1039,8 +1122,8 @@
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>43</FileNumber>
|
<FileNumber>45</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1051,8 +1134,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>44</FileNumber>
|
<FileNumber>46</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1063,8 +1146,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>45</FileNumber>
|
<FileNumber>47</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1075,8 +1158,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>46</FileNumber>
|
<FileNumber>48</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1087,8 +1170,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>47</FileNumber>
|
<FileNumber>49</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1099,8 +1182,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>48</FileNumber>
|
<FileNumber>50</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1111,8 +1194,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>49</FileNumber>
|
<FileNumber>51</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1131,8 +1214,8 @@
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>50</FileNumber>
|
<FileNumber>52</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1143,8 +1226,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>51</FileNumber>
|
<FileNumber>53</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1155,8 +1238,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>52</FileNumber>
|
<FileNumber>54</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1175,8 +1258,8 @@
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>53</FileNumber>
|
<FileNumber>55</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1187,8 +1270,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>54</FileNumber>
|
<FileNumber>56</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1199,8 +1282,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>55</FileNumber>
|
<FileNumber>57</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1211,8 +1294,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>56</FileNumber>
|
<FileNumber>58</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1223,8 +1306,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>57</FileNumber>
|
<FileNumber>59</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1235,8 +1318,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>58</FileNumber>
|
<FileNumber>60</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1255,8 +1338,8 @@
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>11</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>59</FileNumber>
|
<FileNumber>61</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1267,8 +1350,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>11</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>60</FileNumber>
|
<FileNumber>62</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1287,8 +1370,8 @@
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>13</GroupNumber>
|
||||||
<FileNumber>61</FileNumber>
|
<FileNumber>63</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1299,8 +1382,8 @@
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>13</GroupNumber>
|
||||||
<FileNumber>62</FileNumber>
|
<FileNumber>64</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1319,8 +1402,8 @@
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>13</GroupNumber>
|
<GroupNumber>14</GroupNumber>
|
||||||
<FileNumber>63</FileNumber>
|
<FileNumber>65</FileNumber>
|
||||||
<FileType>4</FileType>
|
<FileType>4</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@ -1332,38 +1415,6 @@
|
||||||
</File>
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
|
||||||
<GroupName>User/application/mode</GroupName>
|
|
||||||
<tvExp>1</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<cbSel>0</cbSel>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>14</GroupNumber>
|
|
||||||
<FileNumber>64</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\application\mode\mode.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>mode.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>14</GroupNumber>
|
|
||||||
<FileNumber>65</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\application\mode\mode_pwmp_hd.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>mode_pwmp_hd.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
</Group>
|
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>::CMSIS</GroupName>
|
<GroupName>::CMSIS</GroupName>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="project_projx.xsd">
|
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
|
||||||
|
|
||||||
<SchemaVersion>2.1</SchemaVersion>
|
<SchemaVersion>2.1</SchemaVersion>
|
||||||
|
|
||||||
<Header>### uVision Project, (C) Keil Software</Header>
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
<Targets>
|
<Targets>
|
||||||
<Target>
|
<Target>
|
||||||
<TargetName>controller</TargetName>
|
<TargetName>controller</TargetName>
|
||||||
|
@ -16,28 +19,28 @@
|
||||||
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||||
<PackURL>https://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>
|
||||||
<StartupFile />
|
<StartupFile></StartupFile>
|
||||||
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
||||||
<DeviceId>0</DeviceId>
|
<DeviceId>0</DeviceId>
|
||||||
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
||||||
<MemoryEnv />
|
<MemoryEnv></MemoryEnv>
|
||||||
<Cmp />
|
<Cmp></Cmp>
|
||||||
<Asm />
|
<Asm></Asm>
|
||||||
<Linker />
|
<Linker></Linker>
|
||||||
<OHString />
|
<OHString></OHString>
|
||||||
<InfinionOptionDll />
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
<SLE66CMisc />
|
<SLE66CMisc></SLE66CMisc>
|
||||||
<SLE66AMisc />
|
<SLE66AMisc></SLE66AMisc>
|
||||||
<SLE66LinkerMisc />
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
||||||
<bCustSvd>0</bCustSvd>
|
<bCustSvd>0</bCustSvd>
|
||||||
<UseEnv>0</UseEnv>
|
<UseEnv>0</UseEnv>
|
||||||
<BinPath />
|
<BinPath></BinPath>
|
||||||
<IncludePath>../Core/Inc;../Drivers/STM32L0xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L0xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/menu;../User/lib/unity;../Tests</IncludePath>
|
<IncludePath>../Core/Inc;../Drivers/STM32L0xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L0xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/menu;../User/lib/unity;../Tests</IncludePath>
|
||||||
<LibPath />
|
<LibPath></LibPath>
|
||||||
<RegisterFilePath />
|
<RegisterFilePath></RegisterFilePath>
|
||||||
<DBRegisterFilePath />
|
<DBRegisterFilePath></DBRegisterFilePath>
|
||||||
<TargetStatus>
|
<TargetStatus>
|
||||||
<Error>0</Error>
|
<Error>0</Error>
|
||||||
<ExitCodeStop>0</ExitCodeStop>
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
@ -52,15 +55,15 @@
|
||||||
<CreateHexFile>1</CreateHexFile>
|
<CreateHexFile>1</CreateHexFile>
|
||||||
<DebugInformation>1</DebugInformation>
|
<DebugInformation>1</DebugInformation>
|
||||||
<BrowseInformation>1</BrowseInformation>
|
<BrowseInformation>1</BrowseInformation>
|
||||||
<ListingPath />
|
<ListingPath></ListingPath>
|
||||||
<HexFormatSelection>1</HexFormatSelection>
|
<HexFormatSelection>1</HexFormatSelection>
|
||||||
<Merge32K>0</Merge32K>
|
<Merge32K>0</Merge32K>
|
||||||
<CreateBatchFile>0</CreateBatchFile>
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
<BeforeCompile>
|
<BeforeCompile>
|
||||||
<RunUserProg1>0</RunUserProg1>
|
<RunUserProg1>0</RunUserProg1>
|
||||||
<RunUserProg2>0</RunUserProg2>
|
<RunUserProg2>0</RunUserProg2>
|
||||||
<UserProg1Name />
|
<UserProg1Name></UserProg1Name>
|
||||||
<UserProg2Name />
|
<UserProg2Name></UserProg2Name>
|
||||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
<nStopU1X>0</nStopU1X>
|
<nStopU1X>0</nStopU1X>
|
||||||
|
@ -69,8 +72,8 @@
|
||||||
<BeforeMake>
|
<BeforeMake>
|
||||||
<RunUserProg1>0</RunUserProg1>
|
<RunUserProg1>0</RunUserProg1>
|
||||||
<RunUserProg2>0</RunUserProg2>
|
<RunUserProg2>0</RunUserProg2>
|
||||||
<UserProg1Name />
|
<UserProg1Name></UserProg1Name>
|
||||||
<UserProg2Name />
|
<UserProg2Name></UserProg2Name>
|
||||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
<nStopB1X>0</nStopB1X>
|
<nStopB1X>0</nStopB1X>
|
||||||
|
@ -87,7 +90,7 @@
|
||||||
<nStopA2X>0</nStopA2X>
|
<nStopA2X>0</nStopA2X>
|
||||||
</AfterMake>
|
</AfterMake>
|
||||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||||
<SVCSIdString />
|
<SVCSIdString></SVCSIdString>
|
||||||
</TargetCommonOption>
|
</TargetCommonOption>
|
||||||
<CommonProperty>
|
<CommonProperty>
|
||||||
<UseCPPCompiler>0</UseCPPCompiler>
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
@ -101,8 +104,8 @@
|
||||||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
<PublicsOnly>0</PublicsOnly>
|
<PublicsOnly>0</PublicsOnly>
|
||||||
<StopOnExitCode>3</StopOnExitCode>
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
<CustomArgument />
|
<CustomArgument></CustomArgument>
|
||||||
<IncludeLibraryModules />
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>0</ComprImg>
|
<ComprImg>0</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<DllOption>
|
<DllOption>
|
||||||
|
@ -136,10 +139,10 @@
|
||||||
<bUseTDR>1</bUseTDR>
|
<bUseTDR>1</bUseTDR>
|
||||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||||
<Flash3>"" ()</Flash3>
|
<Flash3>"" ()</Flash3>
|
||||||
<Flash4 />
|
<Flash4></Flash4>
|
||||||
<pFcarmOut />
|
<pFcarmOut></pFcarmOut>
|
||||||
<pFcarmGrp />
|
<pFcarmGrp></pFcarmGrp>
|
||||||
<pFcArmRoot />
|
<pFcArmRoot></pFcArmRoot>
|
||||||
<FcArmLst>0</FcArmLst>
|
<FcArmLst>0</FcArmLst>
|
||||||
</Utilities>
|
</Utilities>
|
||||||
<TargetArmAds>
|
<TargetArmAds>
|
||||||
|
@ -172,7 +175,7 @@
|
||||||
<RvctClst>0</RvctClst>
|
<RvctClst>0</RvctClst>
|
||||||
<GenPPlst>0</GenPPlst>
|
<GenPPlst>0</GenPPlst>
|
||||||
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
||||||
<RvctDeviceName />
|
<RvctDeviceName></RvctDeviceName>
|
||||||
<mOS>0</mOS>
|
<mOS>0</mOS>
|
||||||
<uocRom>0</uocRom>
|
<uocRom>0</uocRom>
|
||||||
<uocRam>0</uocRam>
|
<uocRam>0</uocRam>
|
||||||
|
@ -306,7 +309,7 @@
|
||||||
<Size>0x8000</Size>
|
<Size>0x8000</Size>
|
||||||
</OCR_RVCT10>
|
</OCR_RVCT10>
|
||||||
</OnChipMemories>
|
</OnChipMemories>
|
||||||
<RvctStartVector />
|
<RvctStartVector></RvctStartVector>
|
||||||
</ArmAdsMisc>
|
</ArmAdsMisc>
|
||||||
<Cads>
|
<Cads>
|
||||||
<interw>1</interw>
|
<interw>1</interw>
|
||||||
|
@ -335,7 +338,7 @@
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls>--locale=english --diag_suppress=9</MiscControls>
|
<MiscControls>--locale=english --diag_suppress=9</MiscControls>
|
||||||
<Define>STM32,SLAVE,USE_FULL_LL_DRIVER,STM32L476xx,__FPU_PRESENT=1U,__FPU_USED=0U,__CC_ARM,ARM_MATH_CM4,HSE_VALUE=8000000,HSE_STARTUP_TIMEOUT=100,LSE_STARTUP_TIMEOUT=5000,LSE_VALUE=32768,EXTERNALSAI1_CLOCK_VALUE=2097000,EXTERNALSAI2_CLOCK_VALUE=2097000,HSI_VALUE=16000000,LSI_VALUE=32000,VDD_VALUE=3300,PREFETCH_ENABLE=1,INSTRUCTION_CACHE_ENABLE=1,DATA_CACHE_ENABLE=1,MSI_VALUE=16000000,PREFETCH_ENABLE=0</Define>
|
<Define>STM32,SLAVE,USE_FULL_LL_DRIVER,STM32L476xx,__FPU_PRESENT=1U,__FPU_USED=0U,__CC_ARM,ARM_MATH_CM4,HSE_VALUE=8000000,HSE_STARTUP_TIMEOUT=100,LSE_STARTUP_TIMEOUT=5000,LSE_VALUE=32768,EXTERNALSAI1_CLOCK_VALUE=2097000,EXTERNALSAI2_CLOCK_VALUE=2097000,HSI_VALUE=16000000,LSI_VALUE=32000,VDD_VALUE=3300,PREFETCH_ENABLE=1,INSTRUCTION_CACHE_ENABLE=1,DATA_CACHE_ENABLE=1,MSI_VALUE=16000000,PREFETCH_ENABLE=0</Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath>../Core/Inc;../Drivers/STM32L4xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L4xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/application/mode;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/lcd/gui/Config;../User/lib/lcd/gui/Core;../User/lib/menu;../User/lib/unity;../User/lib/flashdb;../User/lib/flashdb/fal;../User/lib/bootload;../Tests;../Middlewares/ST/ARM/DSP/Inc</IncludePath>
|
<IncludePath>../Core/Inc;../Drivers/STM32L4xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L4xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/application/mode;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/lcd/gui/Config;../User/lib/lcd/gui/Core;../User/lib/menu;../User/lib/unity;../User/lib/flashdb;../User/lib/flashdb/fal;../User/lib/bootload;../Tests;../Middlewares/ST/ARM/DSP/Inc</IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
|
@ -351,10 +354,10 @@
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<ClangAsOpt>4</ClangAsOpt>
|
<ClangAsOpt>4</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Aads>
|
</Aads>
|
||||||
<LDads>
|
<LDads>
|
||||||
|
@ -364,15 +367,15 @@
|
||||||
<noStLib>0</noStLib>
|
<noStLib>0</noStLib>
|
||||||
<RepFail>1</RepFail>
|
<RepFail>1</RepFail>
|
||||||
<useFile>0</useFile>
|
<useFile>0</useFile>
|
||||||
<TextAddressRange />
|
<TextAddressRange></TextAddressRange>
|
||||||
<DataAddressRange />
|
<DataAddressRange></DataAddressRange>
|
||||||
<pXoBase />
|
<pXoBase></pXoBase>
|
||||||
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
||||||
<IncludeLibs />
|
<IncludeLibs></IncludeLibs>
|
||||||
<IncludeLibsPath />
|
<IncludeLibsPath></IncludeLibsPath>
|
||||||
<Misc />
|
<Misc></Misc>
|
||||||
<LinkerInputFile />
|
<LinkerInputFile></LinkerInputFile>
|
||||||
<DisabledWarnings />
|
<DisabledWarnings></DisabledWarnings>
|
||||||
</LDads>
|
</LDads>
|
||||||
</TargetArmAds>
|
</TargetArmAds>
|
||||||
</TargetOption>
|
</TargetOption>
|
||||||
|
@ -492,6 +495,8 @@
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
<PublicsOnly>2</PublicsOnly>
|
<PublicsOnly>2</PublicsOnly>
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>1</ComprImg>
|
<ComprImg>1</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<FileArmAds>
|
<FileArmAds>
|
||||||
|
@ -519,6 +524,12 @@
|
||||||
<v6Lto>2</v6Lto>
|
<v6Lto>2</v6Lto>
|
||||||
<v6WtE>2</v6WtE>
|
<v6WtE>2</v6WtE>
|
||||||
<v6Rtti>2</v6Rtti>
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
</FileArmAds>
|
</FileArmAds>
|
||||||
</FileOption>
|
</FileOption>
|
||||||
|
@ -625,6 +636,21 @@
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>User/application/mode</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>mode.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\User\application\mode\mode.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>mode_pwmp_hd.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\User\application\mode\mode_pwmp_hd.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/hart</GroupName>
|
<GroupName>User/hart</GroupName>
|
||||||
<Files>
|
<Files>
|
||||||
|
@ -790,24 +816,6 @@
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
|
||||||
<GroupName>User/application/mode</GroupName>
|
|
||||||
<Files>
|
|
||||||
<File>
|
|
||||||
<FileName>mode.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\application\mode\mode.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>mode_pwmp_hd.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\application\mode\mode_pwmp_hd.c</FilePath>
|
|
||||||
</File>
|
|
||||||
</Files>
|
|
||||||
</Group>
|
|
||||||
<Group>
|
|
||||||
<GroupName>::CMSIS</GroupName>
|
|
||||||
</Group>
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>Middlewares/Library/DSP Library/DSP Library</GroupName>
|
<GroupName>Middlewares/Library/DSP Library/DSP Library</GroupName>
|
||||||
<GroupOption>
|
<GroupOption>
|
||||||
|
@ -823,6 +831,8 @@
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
<PublicsOnly>2</PublicsOnly>
|
<PublicsOnly>2</PublicsOnly>
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>1</ComprImg>
|
<ComprImg>1</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<GroupArmAds>
|
<GroupArmAds>
|
||||||
|
@ -850,6 +860,12 @@
|
||||||
<v6Lto>2</v6Lto>
|
<v6Lto>2</v6Lto>
|
||||||
<v6WtE>2</v6WtE>
|
<v6WtE>2</v6WtE>
|
||||||
<v6Rtti>2</v6Rtti>
|
<v6Rtti>2</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
<Aads>
|
<Aads>
|
||||||
<interw>2</interw>
|
<interw>2</interw>
|
||||||
|
@ -862,67 +878,16 @@
|
||||||
<uSurpInc>2</uSurpInc>
|
<uSurpInc>2</uSurpInc>
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<ClangAsOpt>1</ClangAsOpt>
|
<ClangAsOpt>1</ClangAsOpt>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
</Aads>
|
</Aads>
|
||||||
</GroupArmAds>
|
</GroupArmAds>
|
||||||
</GroupOption>
|
</GroupOption>
|
||||||
<Files>
|
<Files>
|
||||||
<File>
|
|
||||||
<FileOption>
|
|
||||||
<CommonProperty>
|
|
||||||
<UseCPPCompiler>2</UseCPPCompiler>
|
|
||||||
<RVCTCodeConst>0</RVCTCodeConst>
|
|
||||||
<RVCTZI>0</RVCTZI>
|
|
||||||
<RVCTOtherData>0</RVCTOtherData>
|
|
||||||
<ModuleSelection>0</ModuleSelection>
|
|
||||||
<IncludeInBuild>1</IncludeInBuild>
|
|
||||||
<AlwaysBuild>2</AlwaysBuild>
|
|
||||||
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
|
||||||
<PublicsOnly>2</PublicsOnly>
|
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
|
||||||
<ComprImg>1</ComprImg>
|
|
||||||
</CommonProperty>
|
|
||||||
<FileArmAds>
|
|
||||||
<Cads>
|
|
||||||
<interw>2</interw>
|
|
||||||
<Optim>0</Optim>
|
|
||||||
<oTime>2</oTime>
|
|
||||||
<SplitLS>2</SplitLS>
|
|
||||||
<OneElfS>2</OneElfS>
|
|
||||||
<Strict>2</Strict>
|
|
||||||
<EnumInt>2</EnumInt>
|
|
||||||
<PlainCh>2</PlainCh>
|
|
||||||
<Ropi>2</Ropi>
|
|
||||||
<Rwpi>2</Rwpi>
|
|
||||||
<wLevel>0</wLevel>
|
|
||||||
<uThumb>2</uThumb>
|
|
||||||
<uSurpInc>2</uSurpInc>
|
|
||||||
<uC99>2</uC99>
|
|
||||||
<uGnu>2</uGnu>
|
|
||||||
<useXO>2</useXO>
|
|
||||||
<v6Lang>0</v6Lang>
|
|
||||||
<v6LangP>0</v6LangP>
|
|
||||||
<vShortEn>2</vShortEn>
|
|
||||||
<vShortWch>2</vShortWch>
|
|
||||||
<v6Lto>2</v6Lto>
|
|
||||||
<v6WtE>2</v6WtE>
|
|
||||||
<v6Rtti>2</v6Rtti>
|
|
||||||
</Cads>
|
|
||||||
<Aads>
|
|
||||||
<interw>2</interw>
|
|
||||||
<Ropi>2</Ropi>
|
|
||||||
<Rwpi>2</Rwpi>
|
|
||||||
<thumb>2</thumb>
|
|
||||||
<SplitLS>2</SplitLS>
|
|
||||||
<SwStkChk>2</SwStkChk>
|
|
||||||
<NoWarn>2</NoWarn>
|
|
||||||
<uSurpInc>2</uSurpInc>
|
|
||||||
<useXO>2</useXO>
|
|
||||||
<ClangAsOpt>1</ClangAsOpt>
|
|
||||||
</Aads>
|
|
||||||
</FileArmAds>
|
|
||||||
</FileOption>
|
|
||||||
</File>
|
|
||||||
<File>
|
<File>
|
||||||
<FileName>arm_cortexM4l_math.lib</FileName>
|
<FileName>arm_cortexM4l_math.lib</FileName>
|
||||||
<FileType>4</FileType>
|
<FileType>4</FileType>
|
||||||
|
@ -940,51 +905,18 @@
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
<PublicsOnly>2</PublicsOnly>
|
<PublicsOnly>2</PublicsOnly>
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>1</ComprImg>
|
<ComprImg>1</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<FileArmAds>
|
<FileArmAds/>
|
||||||
<Cads>
|
|
||||||
<interw>2</interw>
|
|
||||||
<Optim>0</Optim>
|
|
||||||
<oTime>2</oTime>
|
|
||||||
<SplitLS>2</SplitLS>
|
|
||||||
<OneElfS>2</OneElfS>
|
|
||||||
<Strict>2</Strict>
|
|
||||||
<EnumInt>2</EnumInt>
|
|
||||||
<PlainCh>2</PlainCh>
|
|
||||||
<Ropi>2</Ropi>
|
|
||||||
<Rwpi>2</Rwpi>
|
|
||||||
<wLevel>0</wLevel>
|
|
||||||
<uThumb>2</uThumb>
|
|
||||||
<uSurpInc>2</uSurpInc>
|
|
||||||
<uC99>2</uC99>
|
|
||||||
<uGnu>2</uGnu>
|
|
||||||
<useXO>2</useXO>
|
|
||||||
<v6Lang>0</v6Lang>
|
|
||||||
<v6LangP>0</v6LangP>
|
|
||||||
<vShortEn>2</vShortEn>
|
|
||||||
<vShortWch>2</vShortWch>
|
|
||||||
<v6Lto>2</v6Lto>
|
|
||||||
<v6WtE>2</v6WtE>
|
|
||||||
<v6Rtti>2</v6Rtti>
|
|
||||||
</Cads>
|
|
||||||
<Aads>
|
|
||||||
<interw>2</interw>
|
|
||||||
<Ropi>2</Ropi>
|
|
||||||
<Rwpi>2</Rwpi>
|
|
||||||
<thumb>2</thumb>
|
|
||||||
<SplitLS>2</SplitLS>
|
|
||||||
<SwStkChk>2</SwStkChk>
|
|
||||||
<NoWarn>2</NoWarn>
|
|
||||||
<uSurpInc>2</uSurpInc>
|
|
||||||
<useXO>2</useXO>
|
|
||||||
<ClangAsOpt>1</ClangAsOpt>
|
|
||||||
</Aads>
|
|
||||||
</FileArmAds>
|
|
||||||
</FileOption>
|
</FileOption>
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::CMSIS</GroupName>
|
||||||
|
</Group>
|
||||||
</Groups>
|
</Groups>
|
||||||
</Target>
|
</Target>
|
||||||
<Target>
|
<Target>
|
||||||
|
@ -1000,28 +932,28 @@
|
||||||
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||||
<PackURL>https://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>
|
||||||
<StartupFile />
|
<StartupFile></StartupFile>
|
||||||
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
||||||
<DeviceId>0</DeviceId>
|
<DeviceId>0</DeviceId>
|
||||||
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
||||||
<MemoryEnv />
|
<MemoryEnv></MemoryEnv>
|
||||||
<Cmp />
|
<Cmp></Cmp>
|
||||||
<Asm />
|
<Asm></Asm>
|
||||||
<Linker />
|
<Linker></Linker>
|
||||||
<OHString />
|
<OHString></OHString>
|
||||||
<InfinionOptionDll />
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
<SLE66CMisc />
|
<SLE66CMisc></SLE66CMisc>
|
||||||
<SLE66AMisc />
|
<SLE66AMisc></SLE66AMisc>
|
||||||
<SLE66LinkerMisc />
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
||||||
<bCustSvd>0</bCustSvd>
|
<bCustSvd>0</bCustSvd>
|
||||||
<UseEnv>0</UseEnv>
|
<UseEnv>0</UseEnv>
|
||||||
<BinPath />
|
<BinPath></BinPath>
|
||||||
<IncludePath>../Core/Inc;../Drivers/STM32L0xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L0xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/menu;../User/lib/unity;../Tests</IncludePath>
|
<IncludePath>../Core/Inc;../Drivers/STM32L0xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L0xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/menu;../User/lib/unity;../Tests</IncludePath>
|
||||||
<LibPath />
|
<LibPath></LibPath>
|
||||||
<RegisterFilePath />
|
<RegisterFilePath></RegisterFilePath>
|
||||||
<DBRegisterFilePath />
|
<DBRegisterFilePath></DBRegisterFilePath>
|
||||||
<TargetStatus>
|
<TargetStatus>
|
||||||
<Error>0</Error>
|
<Error>0</Error>
|
||||||
<ExitCodeStop>0</ExitCodeStop>
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
@ -1036,15 +968,15 @@
|
||||||
<CreateHexFile>1</CreateHexFile>
|
<CreateHexFile>1</CreateHexFile>
|
||||||
<DebugInformation>1</DebugInformation>
|
<DebugInformation>1</DebugInformation>
|
||||||
<BrowseInformation>0</BrowseInformation>
|
<BrowseInformation>0</BrowseInformation>
|
||||||
<ListingPath />
|
<ListingPath></ListingPath>
|
||||||
<HexFormatSelection>1</HexFormatSelection>
|
<HexFormatSelection>1</HexFormatSelection>
|
||||||
<Merge32K>0</Merge32K>
|
<Merge32K>0</Merge32K>
|
||||||
<CreateBatchFile>0</CreateBatchFile>
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
<BeforeCompile>
|
<BeforeCompile>
|
||||||
<RunUserProg1>0</RunUserProg1>
|
<RunUserProg1>0</RunUserProg1>
|
||||||
<RunUserProg2>0</RunUserProg2>
|
<RunUserProg2>0</RunUserProg2>
|
||||||
<UserProg1Name />
|
<UserProg1Name></UserProg1Name>
|
||||||
<UserProg2Name />
|
<UserProg2Name></UserProg2Name>
|
||||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
<nStopU1X>0</nStopU1X>
|
<nStopU1X>0</nStopU1X>
|
||||||
|
@ -1053,8 +985,8 @@
|
||||||
<BeforeMake>
|
<BeforeMake>
|
||||||
<RunUserProg1>0</RunUserProg1>
|
<RunUserProg1>0</RunUserProg1>
|
||||||
<RunUserProg2>0</RunUserProg2>
|
<RunUserProg2>0</RunUserProg2>
|
||||||
<UserProg1Name />
|
<UserProg1Name></UserProg1Name>
|
||||||
<UserProg2Name />
|
<UserProg2Name></UserProg2Name>
|
||||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
<nStopB1X>0</nStopB1X>
|
<nStopB1X>0</nStopB1X>
|
||||||
|
@ -1071,7 +1003,7 @@
|
||||||
<nStopA2X>0</nStopA2X>
|
<nStopA2X>0</nStopA2X>
|
||||||
</AfterMake>
|
</AfterMake>
|
||||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||||
<SVCSIdString />
|
<SVCSIdString></SVCSIdString>
|
||||||
</TargetCommonOption>
|
</TargetCommonOption>
|
||||||
<CommonProperty>
|
<CommonProperty>
|
||||||
<UseCPPCompiler>0</UseCPPCompiler>
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
@ -1085,8 +1017,8 @@
|
||||||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
<PublicsOnly>0</PublicsOnly>
|
<PublicsOnly>0</PublicsOnly>
|
||||||
<StopOnExitCode>3</StopOnExitCode>
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
<CustomArgument />
|
<CustomArgument></CustomArgument>
|
||||||
<IncludeLibraryModules />
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>0</ComprImg>
|
<ComprImg>0</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<DllOption>
|
<DllOption>
|
||||||
|
@ -1120,10 +1052,10 @@
|
||||||
<bUseTDR>1</bUseTDR>
|
<bUseTDR>1</bUseTDR>
|
||||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||||
<Flash3>"" ()</Flash3>
|
<Flash3>"" ()</Flash3>
|
||||||
<Flash4 />
|
<Flash4></Flash4>
|
||||||
<pFcarmOut />
|
<pFcarmOut></pFcarmOut>
|
||||||
<pFcarmGrp />
|
<pFcarmGrp></pFcarmGrp>
|
||||||
<pFcArmRoot />
|
<pFcArmRoot></pFcArmRoot>
|
||||||
<FcArmLst>0</FcArmLst>
|
<FcArmLst>0</FcArmLst>
|
||||||
</Utilities>
|
</Utilities>
|
||||||
<TargetArmAds>
|
<TargetArmAds>
|
||||||
|
@ -1156,7 +1088,7 @@
|
||||||
<RvctClst>0</RvctClst>
|
<RvctClst>0</RvctClst>
|
||||||
<GenPPlst>0</GenPPlst>
|
<GenPPlst>0</GenPPlst>
|
||||||
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
||||||
<RvctDeviceName />
|
<RvctDeviceName></RvctDeviceName>
|
||||||
<mOS>0</mOS>
|
<mOS>0</mOS>
|
||||||
<uocRom>0</uocRom>
|
<uocRom>0</uocRom>
|
||||||
<uocRam>0</uocRam>
|
<uocRam>0</uocRam>
|
||||||
|
@ -1290,7 +1222,7 @@
|
||||||
<Size>0x8000</Size>
|
<Size>0x8000</Size>
|
||||||
</OCR_RVCT10>
|
</OCR_RVCT10>
|
||||||
</OnChipMemories>
|
</OnChipMemories>
|
||||||
<RvctStartVector />
|
<RvctStartVector></RvctStartVector>
|
||||||
</ArmAdsMisc>
|
</ArmAdsMisc>
|
||||||
<Cads>
|
<Cads>
|
||||||
<interw>1</interw>
|
<interw>1</interw>
|
||||||
|
@ -1319,7 +1251,7 @@
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls>--locale=english --diag_suppress=9</MiscControls>
|
<MiscControls>--locale=english --diag_suppress=9</MiscControls>
|
||||||
<Define>STM32,SLAVE,USE_FULL_LL_DRIVER,STM32L476xx,__FPU_PRESENT=1U,__FPU_USED=0U,__CC_ARM,ARM_MATH_CM4,HSE_VALUE=8000000,HSE_STARTUP_TIMEOUT=100,LSE_STARTUP_TIMEOUT=5000,LSE_VALUE=32768,EXTERNALSAI1_CLOCK_VALUE=2097000,EXTERNALSAI2_CLOCK_VALUE=2097000,HSI_VALUE=16000000,LSI_VALUE=32000,VDD_VALUE=3300,PREFETCH_ENABLE=1,INSTRUCTION_CACHE_ENABLE=1,DATA_CACHE_ENABLE=1,MSI_VALUE=16000000</Define>
|
<Define>STM32,SLAVE,USE_FULL_LL_DRIVER,STM32L476xx,__FPU_PRESENT=1U,__FPU_USED=0U,__CC_ARM,ARM_MATH_CM4,HSE_VALUE=8000000,HSE_STARTUP_TIMEOUT=100,LSE_STARTUP_TIMEOUT=5000,LSE_VALUE=32768,EXTERNALSAI1_CLOCK_VALUE=2097000,EXTERNALSAI2_CLOCK_VALUE=2097000,HSI_VALUE=16000000,LSI_VALUE=32000,VDD_VALUE=3300,PREFETCH_ENABLE=1,INSTRUCTION_CACHE_ENABLE=1,DATA_CACHE_ENABLE=1,MSI_VALUE=16000000</Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath>../Core/Inc;../Drivers/STM32L4xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L4xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/application/mode;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/lcd/gui/Config;../User/lib/lcd/gui/Core;../User/lib/menu;../User/lib/unity;../User/lib/flashdb;../User/lib/flashdb/fal;../User/lib/bootload;../Tests;../Middlewares/ST/ARM/DSP/Inc</IncludePath>
|
<IncludePath>../Core/Inc;../Drivers/STM32L4xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L4xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/application/mode;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/lcd/gui/Config;../User/lib/lcd/gui/Core;../User/lib/menu;../User/lib/unity;../User/lib/flashdb;../User/lib/flashdb/fal;../User/lib/bootload;../Tests;../Middlewares/ST/ARM/DSP/Inc</IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
|
@ -1335,10 +1267,10 @@
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<ClangAsOpt>4</ClangAsOpt>
|
<ClangAsOpt>4</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Aads>
|
</Aads>
|
||||||
<LDads>
|
<LDads>
|
||||||
|
@ -1348,15 +1280,15 @@
|
||||||
<noStLib>0</noStLib>
|
<noStLib>0</noStLib>
|
||||||
<RepFail>1</RepFail>
|
<RepFail>1</RepFail>
|
||||||
<useFile>0</useFile>
|
<useFile>0</useFile>
|
||||||
<TextAddressRange />
|
<TextAddressRange></TextAddressRange>
|
||||||
<DataAddressRange />
|
<DataAddressRange></DataAddressRange>
|
||||||
<pXoBase />
|
<pXoBase></pXoBase>
|
||||||
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
||||||
<IncludeLibs />
|
<IncludeLibs></IncludeLibs>
|
||||||
<IncludeLibsPath />
|
<IncludeLibsPath></IncludeLibsPath>
|
||||||
<Misc />
|
<Misc></Misc>
|
||||||
<LinkerInputFile />
|
<LinkerInputFile></LinkerInputFile>
|
||||||
<DisabledWarnings />
|
<DisabledWarnings></DisabledWarnings>
|
||||||
</LDads>
|
</LDads>
|
||||||
</TargetArmAds>
|
</TargetArmAds>
|
||||||
</TargetOption>
|
</TargetOption>
|
||||||
|
@ -1476,8 +1408,8 @@
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
<PublicsOnly>2</PublicsOnly>
|
<PublicsOnly>2</PublicsOnly>
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
<CustomArgument />
|
<CustomArgument></CustomArgument>
|
||||||
<IncludeLibraryModules />
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>1</ComprImg>
|
<ComprImg>1</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<FileArmAds>
|
<FileArmAds>
|
||||||
|
@ -1506,10 +1438,10 @@
|
||||||
<v6WtE>2</v6WtE>
|
<v6WtE>2</v6WtE>
|
||||||
<v6Rtti>2</v6Rtti>
|
<v6Rtti>2</v6Rtti>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
</FileArmAds>
|
</FileArmAds>
|
||||||
|
@ -1617,6 +1549,21 @@
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>User/application/mode</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>mode.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\User\application\mode\mode.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>mode_pwmp_hd.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\User\application\mode\mode_pwmp_hd.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/hart</GroupName>
|
<GroupName>User/hart</GroupName>
|
||||||
<Files>
|
<Files>
|
||||||
|
@ -1783,17 +1730,12 @@
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/application/mode</GroupName>
|
<GroupName>Middlewares/Library/DSP Library/DSP Library</GroupName>
|
||||||
<Files>
|
<Files>
|
||||||
<File>
|
<File>
|
||||||
<FileName>mode.c</FileName>
|
<FileName>arm_cortexM4l_math.lib</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>4</FileType>
|
||||||
<FilePath>..\User\application\mode\mode.c</FilePath>
|
<FilePath>../Middlewares/ST/ARM/DSP/Lib/arm_cortexM4l_math.lib</FilePath>
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>mode_pwmp_hd.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\application\mode\mode_pwmp_hd.c</FilePath>
|
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
@ -1812,8 +1754,8 @@
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
<PublicsOnly>2</PublicsOnly>
|
<PublicsOnly>2</PublicsOnly>
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
<CustomArgument />
|
<CustomArgument></CustomArgument>
|
||||||
<IncludeLibraryModules />
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>1</ComprImg>
|
<ComprImg>1</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<GroupArmAds>
|
<GroupArmAds>
|
||||||
|
@ -1842,10 +1784,10 @@
|
||||||
<v6WtE>2</v6WtE>
|
<v6WtE>2</v6WtE>
|
||||||
<v6Rtti>2</v6Rtti>
|
<v6Rtti>2</v6Rtti>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
<Aads>
|
<Aads>
|
||||||
|
@ -1860,10 +1802,10 @@
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<ClangAsOpt>0</ClangAsOpt>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Aads>
|
</Aads>
|
||||||
</GroupArmAds>
|
</GroupArmAds>
|
||||||
|
@ -1884,28 +1826,28 @@
|
||||||
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||||
<PackURL>https://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>
|
||||||
<StartupFile />
|
<StartupFile></StartupFile>
|
||||||
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
||||||
<DeviceId>0</DeviceId>
|
<DeviceId>0</DeviceId>
|
||||||
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
||||||
<MemoryEnv />
|
<MemoryEnv></MemoryEnv>
|
||||||
<Cmp />
|
<Cmp></Cmp>
|
||||||
<Asm />
|
<Asm></Asm>
|
||||||
<Linker />
|
<Linker></Linker>
|
||||||
<OHString />
|
<OHString></OHString>
|
||||||
<InfinionOptionDll />
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
<SLE66CMisc />
|
<SLE66CMisc></SLE66CMisc>
|
||||||
<SLE66AMisc />
|
<SLE66AMisc></SLE66AMisc>
|
||||||
<SLE66LinkerMisc />
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
||||||
<bCustSvd>0</bCustSvd>
|
<bCustSvd>0</bCustSvd>
|
||||||
<UseEnv>0</UseEnv>
|
<UseEnv>0</UseEnv>
|
||||||
<BinPath />
|
<BinPath></BinPath>
|
||||||
<IncludePath>../Core/Inc;../Drivers/STM32L0xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L0xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/menu;../User/lib/unity;../Tests</IncludePath>
|
<IncludePath>../Core/Inc;../Drivers/STM32L0xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L0xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/menu;../User/lib/unity;../Tests</IncludePath>
|
||||||
<LibPath />
|
<LibPath></LibPath>
|
||||||
<RegisterFilePath />
|
<RegisterFilePath></RegisterFilePath>
|
||||||
<DBRegisterFilePath />
|
<DBRegisterFilePath></DBRegisterFilePath>
|
||||||
<TargetStatus>
|
<TargetStatus>
|
||||||
<Error>0</Error>
|
<Error>0</Error>
|
||||||
<ExitCodeStop>0</ExitCodeStop>
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
@ -1920,15 +1862,15 @@
|
||||||
<CreateHexFile>1</CreateHexFile>
|
<CreateHexFile>1</CreateHexFile>
|
||||||
<DebugInformation>1</DebugInformation>
|
<DebugInformation>1</DebugInformation>
|
||||||
<BrowseInformation>1</BrowseInformation>
|
<BrowseInformation>1</BrowseInformation>
|
||||||
<ListingPath />
|
<ListingPath></ListingPath>
|
||||||
<HexFormatSelection>1</HexFormatSelection>
|
<HexFormatSelection>1</HexFormatSelection>
|
||||||
<Merge32K>0</Merge32K>
|
<Merge32K>0</Merge32K>
|
||||||
<CreateBatchFile>0</CreateBatchFile>
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
<BeforeCompile>
|
<BeforeCompile>
|
||||||
<RunUserProg1>0</RunUserProg1>
|
<RunUserProg1>0</RunUserProg1>
|
||||||
<RunUserProg2>0</RunUserProg2>
|
<RunUserProg2>0</RunUserProg2>
|
||||||
<UserProg1Name />
|
<UserProg1Name></UserProg1Name>
|
||||||
<UserProg2Name />
|
<UserProg2Name></UserProg2Name>
|
||||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
<nStopU1X>0</nStopU1X>
|
<nStopU1X>0</nStopU1X>
|
||||||
|
@ -1937,8 +1879,8 @@
|
||||||
<BeforeMake>
|
<BeforeMake>
|
||||||
<RunUserProg1>0</RunUserProg1>
|
<RunUserProg1>0</RunUserProg1>
|
||||||
<RunUserProg2>0</RunUserProg2>
|
<RunUserProg2>0</RunUserProg2>
|
||||||
<UserProg1Name />
|
<UserProg1Name></UserProg1Name>
|
||||||
<UserProg2Name />
|
<UserProg2Name></UserProg2Name>
|
||||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
<nStopB1X>0</nStopB1X>
|
<nStopB1X>0</nStopB1X>
|
||||||
|
@ -1955,7 +1897,7 @@
|
||||||
<nStopA2X>0</nStopA2X>
|
<nStopA2X>0</nStopA2X>
|
||||||
</AfterMake>
|
</AfterMake>
|
||||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||||
<SVCSIdString />
|
<SVCSIdString></SVCSIdString>
|
||||||
</TargetCommonOption>
|
</TargetCommonOption>
|
||||||
<CommonProperty>
|
<CommonProperty>
|
||||||
<UseCPPCompiler>0</UseCPPCompiler>
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
@ -1969,8 +1911,8 @@
|
||||||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
<PublicsOnly>0</PublicsOnly>
|
<PublicsOnly>0</PublicsOnly>
|
||||||
<StopOnExitCode>3</StopOnExitCode>
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
<CustomArgument />
|
<CustomArgument></CustomArgument>
|
||||||
<IncludeLibraryModules />
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>0</ComprImg>
|
<ComprImg>0</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<DllOption>
|
<DllOption>
|
||||||
|
@ -2004,10 +1946,10 @@
|
||||||
<bUseTDR>1</bUseTDR>
|
<bUseTDR>1</bUseTDR>
|
||||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||||
<Flash3>"" ()</Flash3>
|
<Flash3>"" ()</Flash3>
|
||||||
<Flash4 />
|
<Flash4></Flash4>
|
||||||
<pFcarmOut />
|
<pFcarmOut></pFcarmOut>
|
||||||
<pFcarmGrp />
|
<pFcarmGrp></pFcarmGrp>
|
||||||
<pFcArmRoot />
|
<pFcArmRoot></pFcArmRoot>
|
||||||
<FcArmLst>0</FcArmLst>
|
<FcArmLst>0</FcArmLst>
|
||||||
</Utilities>
|
</Utilities>
|
||||||
<TargetArmAds>
|
<TargetArmAds>
|
||||||
|
@ -2040,7 +1982,7 @@
|
||||||
<RvctClst>0</RvctClst>
|
<RvctClst>0</RvctClst>
|
||||||
<GenPPlst>0</GenPPlst>
|
<GenPPlst>0</GenPPlst>
|
||||||
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
||||||
<RvctDeviceName />
|
<RvctDeviceName></RvctDeviceName>
|
||||||
<mOS>0</mOS>
|
<mOS>0</mOS>
|
||||||
<uocRom>0</uocRom>
|
<uocRom>0</uocRom>
|
||||||
<uocRam>0</uocRam>
|
<uocRam>0</uocRam>
|
||||||
|
@ -2174,7 +2116,7 @@
|
||||||
<Size>0x8000</Size>
|
<Size>0x8000</Size>
|
||||||
</OCR_RVCT10>
|
</OCR_RVCT10>
|
||||||
</OnChipMemories>
|
</OnChipMemories>
|
||||||
<RvctStartVector />
|
<RvctStartVector></RvctStartVector>
|
||||||
</ArmAdsMisc>
|
</ArmAdsMisc>
|
||||||
<Cads>
|
<Cads>
|
||||||
<interw>1</interw>
|
<interw>1</interw>
|
||||||
|
@ -2203,7 +2145,7 @@
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls>--locale=english --diag_suppress=9</MiscControls>
|
<MiscControls>--locale=english --diag_suppress=9</MiscControls>
|
||||||
<Define>STM32,SLAVE,USE_FULL_LL_DRIVER,STM32L476xx,__FPU_PRESENT=1U,__FPU_USED=0U,__CC_ARM,ARM_MATH_CM4,HSE_VALUE=8000000,HSE_STARTUP_TIMEOUT=100,LSE_STARTUP_TIMEOUT=5000,LSE_VALUE=32768,EXTERNALSAI1_CLOCK_VALUE=2097000,EXTERNALSAI2_CLOCK_VALUE=2097000,HSI_VALUE=16000000,LSI_VALUE=32000,VDD_VALUE=3300,PREFETCH_ENABLE=1,INSTRUCTION_CACHE_ENABLE=1,DATA_CACHE_ENABLE=1,MSI_VALUE=16000000</Define>
|
<Define>STM32,SLAVE,USE_FULL_LL_DRIVER,STM32L476xx,__FPU_PRESENT=1U,__FPU_USED=0U,__CC_ARM,ARM_MATH_CM4,HSE_VALUE=8000000,HSE_STARTUP_TIMEOUT=100,LSE_STARTUP_TIMEOUT=5000,LSE_VALUE=32768,EXTERNALSAI1_CLOCK_VALUE=2097000,EXTERNALSAI2_CLOCK_VALUE=2097000,HSI_VALUE=16000000,LSI_VALUE=32000,VDD_VALUE=3300,PREFETCH_ENABLE=1,INSTRUCTION_CACHE_ENABLE=1,DATA_CACHE_ENABLE=1,MSI_VALUE=16000000</Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath>../Core/Inc;../Drivers/STM32L4xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L4xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/application/mode;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/lcd/gui/Config;../User/lib/lcd/gui/Core;../User/lib/menu;../User/lib/unity;../User/lib/flashdb;../User/lib/flashdb/fal;../User/lib/bootload;../Tests;../Middlewares/ST/ARM/DSP/Inc</IncludePath>
|
<IncludePath>../Core/Inc;../Drivers/STM32L4xx_HAL_Driver/Inc;../Drivers/CMSIS/Device/ST/STM32L4xx/Include;../Drivers/CMSIS/Include;../User;../User/system/bsp;../User/board/inc;../User/lib/inc;../User/system/inc;../User/lib/font;../User/application/inc;../User/application/menus;../User/application/mode;../User/hart/inc;../User/lib/flow;../User/lib/control/inc;../User/lib/control/custom;../User/lib/lcd;../User/lib/lcd/gui/Config;../User/lib/lcd/gui/Core;../User/lib/menu;../User/lib/unity;../User/lib/flashdb;../User/lib/flashdb/fal;../User/lib/bootload;../Tests;../Middlewares/ST/ARM/DSP/Inc</IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
|
@ -2219,10 +2161,10 @@
|
||||||
<useXO>0</useXO>
|
<useXO>0</useXO>
|
||||||
<ClangAsOpt>4</ClangAsOpt>
|
<ClangAsOpt>4</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Aads>
|
</Aads>
|
||||||
<LDads>
|
<LDads>
|
||||||
|
@ -2232,15 +2174,15 @@
|
||||||
<noStLib>0</noStLib>
|
<noStLib>0</noStLib>
|
||||||
<RepFail>1</RepFail>
|
<RepFail>1</RepFail>
|
||||||
<useFile>0</useFile>
|
<useFile>0</useFile>
|
||||||
<TextAddressRange />
|
<TextAddressRange></TextAddressRange>
|
||||||
<DataAddressRange />
|
<DataAddressRange></DataAddressRange>
|
||||||
<pXoBase />
|
<pXoBase></pXoBase>
|
||||||
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
||||||
<IncludeLibs />
|
<IncludeLibs></IncludeLibs>
|
||||||
<IncludeLibsPath />
|
<IncludeLibsPath></IncludeLibsPath>
|
||||||
<Misc />
|
<Misc></Misc>
|
||||||
<LinkerInputFile />
|
<LinkerInputFile></LinkerInputFile>
|
||||||
<DisabledWarnings />
|
<DisabledWarnings></DisabledWarnings>
|
||||||
</LDads>
|
</LDads>
|
||||||
</TargetArmAds>
|
</TargetArmAds>
|
||||||
</TargetOption>
|
</TargetOption>
|
||||||
|
@ -2360,8 +2302,8 @@
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
<PublicsOnly>2</PublicsOnly>
|
<PublicsOnly>2</PublicsOnly>
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
<CustomArgument />
|
<CustomArgument></CustomArgument>
|
||||||
<IncludeLibraryModules />
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>1</ComprImg>
|
<ComprImg>1</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<FileArmAds>
|
<FileArmAds>
|
||||||
|
@ -2390,10 +2332,10 @@
|
||||||
<v6WtE>2</v6WtE>
|
<v6WtE>2</v6WtE>
|
||||||
<v6Rtti>2</v6Rtti>
|
<v6Rtti>2</v6Rtti>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
</FileArmAds>
|
</FileArmAds>
|
||||||
|
@ -2501,6 +2443,21 @@
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>User/application/mode</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>mode.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\User\application\mode\mode.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>mode_pwmp_hd.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\User\application\mode\mode_pwmp_hd.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/hart</GroupName>
|
<GroupName>User/hart</GroupName>
|
||||||
<Files>
|
<Files>
|
||||||
|
@ -2667,17 +2624,12 @@
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/application/mode</GroupName>
|
<GroupName>Middlewares/Library/DSP Library/DSP Library</GroupName>
|
||||||
<Files>
|
<Files>
|
||||||
<File>
|
<File>
|
||||||
<FileName>mode.c</FileName>
|
<FileName>arm_cortexM4l_math.lib</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>4</FileType>
|
||||||
<FilePath>..\User\application\mode\mode.c</FilePath>
|
<FilePath>../Middlewares/ST/ARM/DSP/Lib/arm_cortexM4l_math.lib</FilePath>
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>mode_pwmp_hd.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\application\mode\mode_pwmp_hd.c</FilePath>
|
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
|
@ -2696,8 +2648,8 @@
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||||
<PublicsOnly>2</PublicsOnly>
|
<PublicsOnly>2</PublicsOnly>
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
<StopOnExitCode>11</StopOnExitCode>
|
||||||
<CustomArgument />
|
<CustomArgument></CustomArgument>
|
||||||
<IncludeLibraryModules />
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
<ComprImg>1</ComprImg>
|
<ComprImg>1</ComprImg>
|
||||||
</CommonProperty>
|
</CommonProperty>
|
||||||
<GroupArmAds>
|
<GroupArmAds>
|
||||||
|
@ -2726,10 +2678,10 @@
|
||||||
<v6WtE>2</v6WtE>
|
<v6WtE>2</v6WtE>
|
||||||
<v6Rtti>2</v6Rtti>
|
<v6Rtti>2</v6Rtti>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Cads>
|
</Cads>
|
||||||
<Aads>
|
<Aads>
|
||||||
|
@ -2744,10 +2696,10 @@
|
||||||
<useXO>2</useXO>
|
<useXO>2</useXO>
|
||||||
<ClangAsOpt>0</ClangAsOpt>
|
<ClangAsOpt>0</ClangAsOpt>
|
||||||
<VariousControls>
|
<VariousControls>
|
||||||
<MiscControls />
|
<MiscControls></MiscControls>
|
||||||
<Define />
|
<Define></Define>
|
||||||
<Undefine />
|
<Undefine></Undefine>
|
||||||
<IncludePath />
|
<IncludePath></IncludePath>
|
||||||
</VariousControls>
|
</VariousControls>
|
||||||
</Aads>
|
</Aads>
|
||||||
</GroupArmAds>
|
</GroupArmAds>
|
||||||
|
@ -2756,6 +2708,7 @@
|
||||||
</Groups>
|
</Groups>
|
||||||
</Target>
|
</Target>
|
||||||
</Targets>
|
</Targets>
|
||||||
|
|
||||||
<RTE>
|
<RTE>
|
||||||
<apis/>
|
<apis/>
|
||||||
<components>
|
<components>
|
||||||
|
@ -2769,6 +2722,7 @@
|
||||||
</components>
|
</components>
|
||||||
<files/>
|
<files/>
|
||||||
</RTE>
|
</RTE>
|
||||||
|
|
||||||
<LayerInfo>
|
<LayerInfo>
|
||||||
<Layers>
|
<Layers>
|
||||||
<Layer>
|
<Layer>
|
||||||
|
@ -2777,5 +2731,5 @@
|
||||||
</Layer>
|
</Layer>
|
||||||
</Layers>
|
</Layers>
|
||||||
</LayerInfo>
|
</LayerInfo>
|
||||||
</Project>
|
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -428,7 +428,6 @@ void app_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
app_preload_logo(TRUE);
|
app_preload_logo(TRUE);
|
||||||
system_clock_config_high(); // 切换高频
|
|
||||||
// fal初始化
|
// fal初始化
|
||||||
{
|
{
|
||||||
size = 0;
|
size = 0;
|
||||||
|
@ -454,7 +453,6 @@ void app_init(void)
|
||||||
fal_execution_status_set(FAL_EXECUTION_EEPROM_M95_2, TRUE);
|
fal_execution_status_set(FAL_EXECUTION_EEPROM_M95_2, TRUE);
|
||||||
fal_execution_status_set(FAL_EXECUTION_EEPROM_FM24, TRUE);
|
fal_execution_status_set(FAL_EXECUTION_EEPROM_FM24, TRUE);
|
||||||
}
|
}
|
||||||
system_clock_config_low();
|
|
||||||
leds_on(LEDS_GREEN);
|
leds_on(LEDS_GREEN);
|
||||||
// 断电重启:优先启动控制模块 <=2000ms
|
// 断电重启:优先启动控制模块 <=2000ms
|
||||||
if (noinit_data.rest_flag == 0)
|
if (noinit_data.rest_flag == 0)
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "./mode_pwmp_hd.h"
|
#include "./mode_pwmp_hd.h"
|
||||||
#include "delay.h"
|
#include "delay.h"
|
||||||
#include "at_hc24.h"
|
#include "at_bluetooth.h"
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "eeprom_m95.h"
|
#include "eeprom_m95.h"
|
||||||
#include "pid.h"
|
#include "pid.h"
|
||||||
|
@ -129,8 +129,8 @@ static void pwmp_control_update(filter_e type)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_control_t *p = &mode_pwmp_hd->control;
|
mode_pwmp_hd_control_t *p = &mode_pwmp_hd->control;
|
||||||
rt_data.actual_travel = get_actual_travel(type);
|
rt_data.actual_travel = get_actual_travel(type);
|
||||||
rt_data.actual_travel = actual_travel_deal(rt_data.actual_travel);
|
|
||||||
pid_actual = get_pid_travel(rt_data.actual_travel);
|
rt_data.pid_actual = get_pid_travel(rt_data.actual_travel);
|
||||||
|
|
||||||
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
||||||
{
|
{
|
||||||
|
@ -142,22 +142,36 @@ static void pwmp_control_update(filter_e type)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p->ctrl_target = lpf_window_update(mode_pwmp_hd->filter.handle, pid_target);
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
{
|
||||||
|
p->ctrl_target = lpf_window_update(&mode_pwmp_hd->filter.handle, rt_data.pid_target);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p->ctrl_target = 100.0f - lpf_window_update(&mode_pwmp_hd->filter.handle, rt_data.pid_target);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#if ACTUAL_FILTER == 1
|
#if ACTUAL_FILTER == 1
|
||||||
if (fabs(p->real_error) < 0.5)
|
if (fabs(p->real_error) < 0.5)
|
||||||
{
|
{
|
||||||
p->ctrl_feedback = lpf_window_update(mode_pwmp_hd->filter.handle, pid_actual);
|
p->ctrl_feedback = lpf_window_update(mode_pwmp_hd->filter.handle, rt_data.pid_actual);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p->ctrl_feedback = pid_actual;
|
p->ctrl_feedback = rt_data.pid_actual;
|
||||||
lpf_window_reset(mode_pwmp_hd->filter.handle);
|
lpf_window_reset(mode_pwmp_hd->filter.handle);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
p->ctrl_feedback = pid_actual;
|
p->ctrl_feedback = rt_data.pid_actual;
|
||||||
#endif
|
#endif
|
||||||
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
{
|
||||||
p->real_error = p->ctrl_target - p->ctrl_feedback;
|
p->real_error = p->ctrl_target - p->ctrl_feedback;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p->real_error = -(p->ctrl_target - p->ctrl_feedback);
|
||||||
|
}
|
||||||
p->current_adc = adc_raw[ADC_PSB_CHANNEL];
|
p->current_adc = adc_raw[ADC_PSB_CHANNEL];
|
||||||
p->small_trip_current_adc = adc_result_average(ADCS_1, ADC_IPSB_CHANNEL);
|
p->small_trip_current_adc = adc_result_average(ADCS_1, ADC_IPSB_CHANNEL);
|
||||||
/*测试模式赋值*/
|
/*测试模式赋值*/
|
||||||
|
@ -175,8 +189,8 @@ static float32 get_pwmp_hd_control_kp(void)
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd->pwmp_save->storage.kp < 2)
|
if (mode_pwmp_hd->pwmp_save->storage.kp < 2)
|
||||||
{
|
{
|
||||||
return mode_pwmp_hd->pwmp_save->storage.kp * 8;
|
// return mode_pwmp_hd->pwmp_save->storage.kp * 6;
|
||||||
// return mode_pwmp_hd->pwmp_save->storage.kp * 15;
|
return mode_pwmp_hd->pwmp_save->storage.kp * 15;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -192,7 +206,7 @@ static float32 get_pwmp_hd_control_ki(void)
|
||||||
static float32 get_pwmp_hd_control_kd(void)
|
static float32 get_pwmp_hd_control_kd(void)
|
||||||
{
|
{
|
||||||
// return mode_pwmp_hd->pwmp_save->storage.kd < 0.01 ? mode_pwmp_hd->pwmp_save->storage.kd : 0.001;
|
// return mode_pwmp_hd->pwmp_save->storage.kd < 0.01 ? mode_pwmp_hd->pwmp_save->storage.kd : 0.001;
|
||||||
if (udevice.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
||||||
{
|
{
|
||||||
return mode_pwmp_hd->pwmp_save->storage.kd = 0;
|
return mode_pwmp_hd->pwmp_save->storage.kd = 0;
|
||||||
}
|
}
|
||||||
|
@ -217,9 +231,9 @@ static void pwmp_public_params_update()
|
||||||
udevice.pos100_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
udevice.pos100_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
||||||
udevice.output_min = mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
udevice.output_min = mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
udevice.output_max = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin;
|
udevice.output_max = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin;
|
||||||
udevice.apid_kp = mode_pwmp_hd->pwmp_save->storage.kp;
|
udevice.spid_kp = mode_pwmp_hd->pwmp_save->storage.kp;
|
||||||
udevice.apid_ki = mode_pwmp_hd->pwmp_save->storage.ki;
|
udevice.spid_ki = mode_pwmp_hd->pwmp_save->storage.ki;
|
||||||
udevice.apid_kd = mode_pwmp_hd->pwmp_save->storage.kd;
|
udevice.spid_kd = mode_pwmp_hd->pwmp_save->storage.kd;
|
||||||
udevice.tuned_flag = mode_pwmp_hd->pwmp_save->storage.prov_flag;
|
udevice.tuned_flag = mode_pwmp_hd->pwmp_save->storage.prov_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -233,9 +247,9 @@ void mode_pwmp_hd_stop(mode_pwmp_hd_t *handle)
|
||||||
// TODO:需要对进气和排气过程进行判定
|
// TODO:需要对进气和排气过程进行判定
|
||||||
/*将10-20、20-30、30-40...等区间进行局部线性化,并将输入的目标变量进行映射处理*/
|
/*将10-20、20-30、30-40...等区间进行局部线性化,并将输入的目标变量进行映射处理*/
|
||||||
static float32_t convert_target_to_controlvalue()
|
static float32_t convert_target_to_controlvalue()
|
||||||
{ // FIXME:将函数补足
|
{
|
||||||
uint16_t i = 0;
|
uint16_t i = 0;
|
||||||
float32 tmp = 0;
|
float32 tmp = 0.0;
|
||||||
static float32 control_value = 0; // 此变量要传回,故定义为static类型。
|
static float32 control_value = 0; // 此变量要传回,故定义为static类型。
|
||||||
|
|
||||||
i = (uint16_t)(fabs(mode_pwmp_hd->control.ctrl_target) / 10);
|
i = (uint16_t)(fabs(mode_pwmp_hd->control.ctrl_target) / 10);
|
||||||
|
@ -257,12 +271,12 @@ static float32_t convert_target_to_controlvalue()
|
||||||
if (mode_pwmp_hd->action == INFLATE)
|
if (mode_pwmp_hd->action == INFLATE)
|
||||||
{
|
{
|
||||||
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
||||||
control_value = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i - 1];
|
control_value = (tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i - 1]) + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i - 1];
|
||||||
}
|
}
|
||||||
else if (mode_pwmp_hd->action == DEFLATE)
|
else if (mode_pwmp_hd->action == DEFLATE)
|
||||||
{
|
{
|
||||||
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
tmp = ((mode_pwmp_hd->control.ctrl_target - (i * 10)) / (10));
|
||||||
control_value = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i - 1];
|
control_value = (tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i - 1]) + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i - 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,7 +286,7 @@ static float32_t convert_target_to_controlvalue()
|
||||||
/*判断运动状态(充气/排气)*/
|
/*判断运动状态(充气/排气)*/
|
||||||
static void inflate_or_deflate()
|
static void inflate_or_deflate()
|
||||||
{
|
{
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd->control.real_error < 0)
|
if (mode_pwmp_hd->control.real_error < 0)
|
||||||
{
|
{
|
||||||
|
@ -283,7 +297,7 @@ static void inflate_or_deflate()
|
||||||
mode_pwmp_hd->action = INFLATE;
|
mode_pwmp_hd->action = INFLATE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (udevice.value_action_type == ATC)
|
else if (udevice.zero_power_condition == VALVE_CLOSE)
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd->control.real_error < 0)
|
if (mode_pwmp_hd->control.real_error < 0)
|
||||||
{
|
{
|
||||||
|
@ -296,6 +310,55 @@ static void inflate_or_deflate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*计算稳定区间控制值*/
|
||||||
|
static void calculate_pwmp_stable_range(float32 *target, float32 *err)
|
||||||
|
{
|
||||||
|
// TODO:完善稳定区间控制值代码编写
|
||||||
|
|
||||||
|
float32 up_value = 0.0;
|
||||||
|
float32 down_value = 0.0;
|
||||||
|
uint8_t up = 0;
|
||||||
|
uint8_t down = 0;
|
||||||
|
uint8_t i = 0;
|
||||||
|
float32 tmp = 0.0;
|
||||||
|
|
||||||
|
up_value = (fabs(*target) + 5.0);
|
||||||
|
down_value = (fabs(*target) - 5.0);
|
||||||
|
up = (uint8_t)((fabs(*target) + 5.0) / 10);
|
||||||
|
down = (uint8_t)((fabs(*target) - 5.0) / 10);
|
||||||
|
i = (uint8_t)((fabs(*target) / 10));
|
||||||
|
|
||||||
|
if (mode_pwmp_hd->action == INFLATE)
|
||||||
|
{
|
||||||
|
tmp = ((up_value - (up * 10.0)) / (10.0));
|
||||||
|
mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[up - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[up - 1];
|
||||||
|
tmp = ((down_value - (down * 10.0)) / (10.0));
|
||||||
|
mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[down - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[down - 1];
|
||||||
|
tmp = ((*target - (i * 10.0)) / (10.0));
|
||||||
|
mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i - 1];
|
||||||
|
}
|
||||||
|
else if (mode_pwmp_hd->action == DEFLATE)
|
||||||
|
{
|
||||||
|
// tmp = ((up_value - (up * 10.0)) / (10.0));
|
||||||
|
// mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[up - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[up - 1];
|
||||||
|
// tmp = ((down_value - (down * 10.0)) / (10.0));
|
||||||
|
// mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[down - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[down - 1];
|
||||||
|
// tmp = ((*target - (i * 10.0)) / (10.0));
|
||||||
|
// mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i - 1];
|
||||||
|
tmp = ((up_value - (up * 10.0)) / (10.0));
|
||||||
|
mode_pwmp_hd->control.pwmp_max_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[up - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[up - 1];
|
||||||
|
tmp = ((down_value - (down * 10.0)) / (10.0));
|
||||||
|
mode_pwmp_hd->control.pwmp_min_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[down - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[down - 1];
|
||||||
|
tmp = ((*target - (i * 10.0)) / (10.0));
|
||||||
|
mode_pwmp_hd->valvepos_stable = tmp * mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i - 1] + mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i - 1];
|
||||||
|
}
|
||||||
|
if (fabs(*err) <= 0.5)
|
||||||
|
{
|
||||||
|
// 此处做平滑处理(平滑移动到稳定控制点)
|
||||||
|
mode_pwmp_hd->control.pwmp_max_stable -= fabs(*err) * fabs(mode_pwmp_hd->control.pwmp_max_stable - mode_pwmp_hd->valvepos_stable);
|
||||||
|
mode_pwmp_hd->control.pwmp_min_stable += fabs(*err) * fabs(mode_pwmp_hd->control.pwmp_min_stable - mode_pwmp_hd->valvepos_stable);
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief 算法方案初始化
|
* @brief 算法方案初始化
|
||||||
* @param {execute_plan_hd_e} plan
|
* @param {execute_plan_hd_e} plan
|
||||||
|
@ -313,7 +376,9 @@ void execute_pid_init(execute_plan_hd_e plan)
|
||||||
_pid.pid_u.hd.set_ctrl_prm_position(&_pid.pid_u.hd, get_pwmp_hd_control_kp(), get_pwmp_hd_control_ki(), get_pwmp_hd_control_kd());
|
_pid.pid_u.hd.set_ctrl_prm_position(&_pid.pid_u.hd, get_pwmp_hd_control_kp(), get_pwmp_hd_control_ki(), get_pwmp_hd_control_kd());
|
||||||
break;
|
break;
|
||||||
case EXECUTE_PLAN_2:
|
case EXECUTE_PLAN_2:
|
||||||
|
_pid.type = PID_TYPE_CUSTOM_HANGDIAN;
|
||||||
|
pid_constructor(&_pid);
|
||||||
|
_pid.pid_u.hd.set_ctrl_prm_position(&_pid.pid_u.hd, get_pwmp_hd_control_kp(), get_pwmp_hd_control_ki(), get_pwmp_hd_control_kd());
|
||||||
break;
|
break;
|
||||||
case EXECUTE_PLAN_3:
|
case EXECUTE_PLAN_3:
|
||||||
|
|
||||||
|
@ -351,7 +416,6 @@ execute_rsp_hd_t *execute_dac(execute_plan_hd_e plan)
|
||||||
static execute_rsp_hd_t *execute_dac_plan1()
|
static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
{
|
{
|
||||||
static float32 Control_diff;
|
static float32 Control_diff;
|
||||||
// uint8_t flag_stable = 0;
|
|
||||||
Control_diff = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin - mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
Control_diff = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin - mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
float32 out = 0.0;
|
float32 out = 0.0;
|
||||||
|
|
||||||
|
@ -364,15 +428,15 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
_pid.pid_u.hd.set_out_prm_position(&_pid.pid_u.hd, 100, 0);
|
_pid.pid_u.hd.set_out_prm_position(&_pid.pid_u.hd, 100, 0);
|
||||||
out = _pid.pid_u.hd.pid_position(&_pid.pid_u.hd, mode_pwmp_hd->control.real_error);
|
out = _pid.pid_u.hd.pid_position(&_pid.pid_u.hd, mode_pwmp_hd->control.real_error);
|
||||||
out = out / 100;
|
out = out / 100;
|
||||||
if (udevice.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
||||||
{
|
{
|
||||||
#if 1
|
#if 1
|
||||||
/* 一阶段加权系数*/
|
/* 一阶段加权系数*/
|
||||||
static float32 index_min_first = 0.2;
|
static float32 index_min_first = 0.5;
|
||||||
static float32 index_max_first = 0.2;
|
static float32 index_max_first = 0.5;
|
||||||
/*二阶段加权系数*/
|
/*二阶段加权系数*/
|
||||||
static float32 index_min_second = 0.1;
|
static float32 index_min_second = 0.2;
|
||||||
static float32 index_max_second = 0.1;
|
static float32 index_max_second = 0.2;
|
||||||
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
||||||
{
|
{
|
||||||
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
||||||
|
@ -435,7 +499,7 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (udevice.value_travel_type == TRAVEL_TYPE_ANGULAR)
|
else if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_ANGULAR)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
/* 一阶段加权系数*/
|
/* 一阶段加权系数*/
|
||||||
|
@ -499,10 +563,128 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name=""></param>
|
/// <param name=""></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
/// TODO:完善新策略控制程序
|
||||||
static execute_rsp_hd_t *execute_dac_plan2()
|
static execute_rsp_hd_t *execute_dac_plan2()
|
||||||
{
|
{
|
||||||
return 0;
|
float32 out = 0.0;
|
||||||
|
static float32 Control_diff;
|
||||||
|
Control_diff = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin - mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
/*判断此时的充排气状态*/
|
||||||
|
inflate_or_deflate();
|
||||||
|
/*获取目标值对应的控制值大小*/
|
||||||
|
// mode_pwmp_hd->valvepos_stable = convert_target_to_controlvalue();
|
||||||
|
/*获取控制稳定值上下限区间*/
|
||||||
|
calculate_pwmp_stable_range(&mode_pwmp_hd->control.ctrl_target, &mode_pwmp_hd->control.real_error);
|
||||||
|
|
||||||
|
// 杭电:输出限幅的参数设置
|
||||||
|
_pid.pid_u.hd.set_out_prm_position(&_pid.pid_u.hd, 100, 0);
|
||||||
|
out = _pid.pid_u.hd.pid_position(&_pid.pid_u.hd, mode_pwmp_hd->control.real_error);
|
||||||
|
out = out / 100;
|
||||||
|
|
||||||
|
if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
||||||
|
{
|
||||||
|
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
||||||
|
{
|
||||||
|
// 在整定过程中时,执行本控制程序实现稳定点的求取
|
||||||
|
/* 一阶段加权系数*/
|
||||||
|
static float32 index_min_first = 0;
|
||||||
|
static float32 index_max_first = 0;
|
||||||
|
/*二阶段加权系数*/
|
||||||
|
static float32 index_min_second = 0;
|
||||||
|
static float32 index_max_second = 0;
|
||||||
|
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
||||||
|
{ // 对PID输出结果进行归一化处理
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_first) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_first;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) >= 1)
|
||||||
|
{ // 对PID输出结果进行归一化处理
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin + Control_diff * index_max_second) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin - Control_diff * index_min_second;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 控制模式中执行下列程序
|
||||||
|
if ((mode_pwmp_hd->control.ctrl_target > 10.0f || mode_pwmp_hd->control.ctrl_target < 90.0f))
|
||||||
|
{
|
||||||
|
if (mode_pwmp_hd->action == INFLATE)
|
||||||
|
{
|
||||||
|
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.3) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.1) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) > 0.5)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.5)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->control.pwmp_max_stable) - (mode_pwmp_hd->control.pwmp_min_stable); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->control.pwmp_min_stable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (mode_pwmp_hd->action == DEFLATE)
|
||||||
|
{
|
||||||
|
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->storage.overimpulse_ex)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->storage.overimpulse_ex)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.95); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.95;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7 && fabs(mode_pwmp_hd->control.real_error) > 0.5)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) <= 0.5)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->control.pwmp_max_stable) - (mode_pwmp_hd->control.pwmp_min_stable); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->control.pwmp_min_stable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (fabs(mode_pwmp_hd->control.real_error) >= mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.3) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) >= 5.7 && fabs(mode_pwmp_hd->control.real_error) < mode_pwmp_hd->pwmp_save->storage.overimpulse_in)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.1) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
else if (fabs(mode_pwmp_hd->control.real_error) < 5.7)
|
||||||
|
{
|
||||||
|
out *= (mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin) - (mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin); // 映射实际控制器的范围
|
||||||
|
out += mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rsp.code = EXECUTE_HD_OUT;
|
||||||
|
rsp.dac = (uint32_t)out;
|
||||||
|
|
||||||
|
return &rsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -621,7 +803,7 @@ static void pwmp_adjust_hd_idle(uint8_t *state, mode_pwmp_hd_adjust_state_e next
|
||||||
mode_pwmp_hd_adjust->adc_record_1 = pid_autotune_hd->data.adjust_tmp_actual;
|
mode_pwmp_hd_adjust->adc_record_1 = pid_autotune_hd->data.adjust_tmp_actual;
|
||||||
mode_pwmp_hd_adjust->adc_record_0 = pid_autotune_hd->data.adjust_tmp_actual;
|
mode_pwmp_hd_adjust->adc_record_0 = pid_autotune_hd->data.adjust_tmp_actual;
|
||||||
// 记录0位置电流的大小
|
// 记录0位置电流的大小
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->current_0 = ip2current();
|
mode_pwmp_hd_adjust->current_0 = ip2current();
|
||||||
}
|
}
|
||||||
|
@ -921,7 +1103,7 @@ static void pwmp_adjust_hd_rough_position100(uint8_t *state, mode_pwmp_hd_adjust
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sys_millis_reset();
|
sys_millis_reset();
|
||||||
if (udevice.value_action_type == ATO) // 若调节阀为气开阀
|
if (udevice.zero_power_condition == VALVE_OPEN) // 若调节阀为气开阀
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->all_open_time_full = sys_millis(); // 记录满信号全开起始时间
|
mode_pwmp_hd_adjust->all_open_time_full = sys_millis(); // 记录满信号全开起始时间
|
||||||
}
|
}
|
||||||
|
@ -946,7 +1128,7 @@ static void pwmp_adjust_hd_rough_position100(uint8_t *state, mode_pwmp_hd_adjust
|
||||||
case POSITION_NO_CHANGE_FOREVER:
|
case POSITION_NO_CHANGE_FOREVER:
|
||||||
// 位置不再改变,记录此时阀门位置AD值
|
// 位置不再改变,记录此时阀门位置AD值
|
||||||
mode_pwmp_hd_adjust->adc_record_2 = current_adc;
|
mode_pwmp_hd_adjust->adc_record_2 = current_adc;
|
||||||
if (udevice.value_action_type == ATO) // 若调节阀为气开阀
|
if (udevice.zero_power_condition == VALVE_OPEN) // 若调节阀为气开阀
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
||||||
mode_pwmp_hd_adjust->all_open_time_full = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_open_time_full;
|
mode_pwmp_hd_adjust->all_open_time_full = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_open_time_full;
|
||||||
|
@ -1042,7 +1224,7 @@ static void pwmp_adjust_hd_accurate_position100(uint8_t *state, mode_pwmp_hd_adj
|
||||||
// 记录在100阀位的adc值
|
// 记录在100阀位的adc值
|
||||||
mode_pwmp_hd_adjust->arr_record_2 = mode_pwmp_hd_adjust->arr_current;
|
mode_pwmp_hd_adjust->arr_record_2 = mode_pwmp_hd_adjust->arr_current;
|
||||||
// 记录在100阀位时的电流大小
|
// 记录在100阀位时的电流大小
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->current_100 = ip2current();
|
mode_pwmp_hd_adjust->current_100 = ip2current();
|
||||||
}
|
}
|
||||||
|
@ -1061,7 +1243,7 @@ static void pwmp_adjust_hd_accurate_position100(uint8_t *state, mode_pwmp_hd_adj
|
||||||
/*若快到顶时等待10s,否则等待1s*/
|
/*若快到顶时等待10s,否则等待1s*/
|
||||||
if (adc_diff < 20)
|
if (adc_diff < 20)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 50;
|
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 20;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1096,7 +1278,7 @@ static void pwmp_adjust_hd_accurate_position100(uint8_t *state, mode_pwmp_hd_adj
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*计算控制的全关时间:以ATO类型角度命名*/
|
/*计算控制的全关时间:以VALVE_OPEN类型角度命名*/
|
||||||
static void pwmp_adjust_hd_all_close_time(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
static void pwmp_adjust_hd_all_close_time(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
||||||
{
|
{
|
||||||
if (!FSM_IS_WAIT(*state))
|
if (!FSM_IS_WAIT(*state))
|
||||||
|
@ -1105,7 +1287,7 @@ static void pwmp_adjust_hd_all_close_time(uint8_t *state, mode_pwmp_hd_adjust_st
|
||||||
|
|
||||||
/*记录起始的全开时间*/
|
/*记录起始的全开时间*/
|
||||||
sys_millis_reset();
|
sys_millis_reset();
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->all_close_time = sys_millis();
|
mode_pwmp_hd_adjust->all_close_time = sys_millis();
|
||||||
}
|
}
|
||||||
|
@ -1123,7 +1305,7 @@ static void pwmp_adjust_hd_all_close_time(uint8_t *state, mode_pwmp_hd_adjust_st
|
||||||
mode_pwmp_hd_adjust->psb_adc = get_actual_travel_adc();
|
mode_pwmp_hd_adjust->psb_adc = get_actual_travel_adc();
|
||||||
if (abs(mode_pwmp_hd_adjust->psb_adc - mode_pwmp_hd_adjust->adc_record_0) < DIFF_ADC)
|
if (abs(mode_pwmp_hd_adjust->psb_adc - mode_pwmp_hd_adjust->adc_record_0) < DIFF_ADC)
|
||||||
{
|
{
|
||||||
if (udevice.value_action_type == ATO) // 若调节阀为气开阀
|
if (udevice.zero_power_condition == VALVE_OPEN) // 若调节阀为气开阀
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
||||||
mode_pwmp_hd_adjust->all_close_time = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_close_time;
|
mode_pwmp_hd_adjust->all_close_time = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_close_time;
|
||||||
|
@ -1147,7 +1329,7 @@ static void pwmp_adjust_hd_all_open_time(uint8_t *state, mode_pwmp_hd_adjust_sta
|
||||||
|
|
||||||
/*记录起始的全开时间*/
|
/*记录起始的全开时间*/
|
||||||
sys_millis_reset();
|
sys_millis_reset();
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->all_open_time = sys_millis();
|
mode_pwmp_hd_adjust->all_open_time = sys_millis();
|
||||||
}
|
}
|
||||||
|
@ -1165,7 +1347,7 @@ static void pwmp_adjust_hd_all_open_time(uint8_t *state, mode_pwmp_hd_adjust_sta
|
||||||
mode_pwmp_hd_adjust->psb_adc = get_actual_travel_adc();
|
mode_pwmp_hd_adjust->psb_adc = get_actual_travel_adc();
|
||||||
if (abs(mode_pwmp_hd_adjust->psb_adc - mode_pwmp_hd_adjust->adc_record_2) < DIFF_ADC)
|
if (abs(mode_pwmp_hd_adjust->psb_adc - mode_pwmp_hd_adjust->adc_record_2) < DIFF_ADC)
|
||||||
{
|
{
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
||||||
mode_pwmp_hd_adjust->all_open_time = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_open_time;
|
mode_pwmp_hd_adjust->all_open_time = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_open_time;
|
||||||
|
@ -1211,7 +1393,7 @@ static void pwmp_adjust_hd_calculate(uint8_t *state, mode_pwmp_hd_adjust_state_e
|
||||||
mode_pwmp_hd->pwmp_save->storage.all_close_time_full = mode_pwmp_hd_adjust->all_close_time_full;
|
mode_pwmp_hd->pwmp_save->storage.all_close_time_full = mode_pwmp_hd_adjust->all_close_time_full;
|
||||||
|
|
||||||
/*判断调节阀类型(气开/气关),对最低行程和最高行程进行标定*/
|
/*判断调节阀类型(气开/气关),对最低行程和最高行程进行标定*/
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_100 = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
mode_pwmp_hd->pwmp_save->storage.trip_100 = mode_pwmp_hd->pwmp_save->storage.trip_100;
|
||||||
mode_pwmp_hd->pwmp_save->storage.trip_0 = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
mode_pwmp_hd->pwmp_save->storage.trip_0 = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
||||||
|
@ -1226,11 +1408,11 @@ static void pwmp_adjust_hd_calculate(uint8_t *state, mode_pwmp_hd_adjust_state_e
|
||||||
// 保存安装方向
|
// 保存安装方向
|
||||||
if (mode_pwmp_hd->pwmp_save->storage.trip_100 > mode_pwmp_hd->pwmp_save->storage.trip_0) // 上大下小,正装
|
if (mode_pwmp_hd->pwmp_save->storage.trip_100 > mode_pwmp_hd->pwmp_save->storage.trip_0) // 上大下小,正装
|
||||||
{
|
{
|
||||||
udevice.dev_install_dir = 1;
|
udevice.invert_feedback = 1;
|
||||||
}
|
}
|
||||||
else // 充气,ADC减小,正装
|
else // 充气,ADC减小,正装
|
||||||
{
|
{
|
||||||
udevice.dev_install_dir = 0;
|
udevice.invert_feedback = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
udevice.pos0_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
udevice.pos0_travel_vol = mode_pwmp_hd->pwmp_save->storage.trip_0;
|
||||||
|
@ -1258,7 +1440,7 @@ static void pwmp_adjust_hd_bleeding(uint8_t *state)
|
||||||
if (mode_pwmp_hd_adjust->all_bleed_time_flag == true)
|
if (mode_pwmp_hd_adjust->all_bleed_time_flag == true)
|
||||||
{
|
{
|
||||||
sys_millis_reset();
|
sys_millis_reset();
|
||||||
if (udevice.value_action_type == ATO)
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->all_close_time_full = sys_millis();
|
mode_pwmp_hd_adjust->all_close_time_full = sys_millis();
|
||||||
}
|
}
|
||||||
|
@ -1280,7 +1462,7 @@ static void pwmp_adjust_hd_bleeding(uint8_t *state)
|
||||||
case POSITION_NO_CHANGE_FOREVER:
|
case POSITION_NO_CHANGE_FOREVER:
|
||||||
if (mode_pwmp_hd_adjust->all_bleed_time_flag == true)
|
if (mode_pwmp_hd_adjust->all_bleed_time_flag == true)
|
||||||
{
|
{
|
||||||
if (udevice.value_action_type == ATO) // 若调节阀为气开阀
|
if (udevice.zero_power_condition == VALVE_OPEN) // 若调节阀为气开阀
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
mode_pwmp_hd_adjust->tmp_time = sys_millis();
|
||||||
mode_pwmp_hd_adjust->all_close_time_full = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_close_time_full;
|
mode_pwmp_hd_adjust->all_close_time_full = mode_pwmp_hd_adjust->tmp_time - mode_pwmp_hd_adjust->all_close_time_full;
|
||||||
|
@ -1481,26 +1663,48 @@ static void pwmp_hd_adjust_step_by_10_to_100(uint8_t *state, mode_pwmp_hd_adjust
|
||||||
execute_rsp_hd_t *execute_res;
|
execute_rsp_hd_t *execute_res;
|
||||||
if (!FSM_IS_WAIT(*state))
|
if (!FSM_IS_WAIT(*state))
|
||||||
{
|
{
|
||||||
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
{
|
||||||
mode_pwmp_hd_adjust->ctrl_target = 10;
|
mode_pwmp_hd_adjust->ctrl_target = 10;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->ctrl_target = 90;
|
||||||
|
}
|
||||||
mode_pwmp_hd_adjust->adjust_state = (mode_pwmp_hd_adjust_state_e)*state;
|
mode_pwmp_hd_adjust->adjust_state = (mode_pwmp_hd_adjust_state_e)*state;
|
||||||
FSM_WAIT(mode_pwmp_hd_adjust->adjust_state); // 等放气完毕就可以切入到else里面了
|
FSM_WAIT(mode_pwmp_hd_adjust->adjust_state); // 等放气完毕就可以切入到else里面了
|
||||||
*state = PWMP_HD_ADJUST_BLEEDING;
|
*state = PWMP_HD_ADJUST_BLEEDING;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
static unsigned int i = 0;
|
static unsigned int i_open = 0;
|
||||||
/*将模式调整为控制模式*/
|
static unsigned int i_close = 8;
|
||||||
|
float32 tmp = 0.0f;
|
||||||
|
/*更新设备参数*/
|
||||||
pwmp_control_update(FILTER_MEDIAN);
|
pwmp_control_update(FILTER_MEDIAN);
|
||||||
if (rt_data.loop_current >= 4.0)
|
if (rt_data.loop_current >= 4.0)
|
||||||
{
|
{
|
||||||
if (mode_pwmp_hd_adjust->ctrl_target == 0)
|
if (mode_pwmp_hd_adjust->ctrl_target == 0)
|
||||||
|
{
|
||||||
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (mode_pwmp_hd_adjust->ctrl_target == 100)
|
else if (mode_pwmp_hd_adjust->ctrl_target == 100)
|
||||||
{
|
{
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.5);
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 1.5);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 0.8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1515,17 +1719,22 @@ static void pwmp_hd_adjust_step_by_10_to_100(uint8_t *state, mode_pwmp_hd_adjust
|
||||||
if (fabs(mode_pwmp_hd_adjust->real_error) > 1)
|
if (fabs(mode_pwmp_hd_adjust->real_error) > 1)
|
||||||
{
|
{
|
||||||
// 此处延时两秒钟
|
// 此处延时两秒钟
|
||||||
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 30;
|
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 50;
|
||||||
|
lpf_window_reset(&mode_pwmp_hd->filter.handle);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->wait_count--;
|
mode_pwmp_hd_adjust->wait_count--;
|
||||||
|
// TODO:加上本次控制值与上次控制值差值的判断
|
||||||
|
tmp = lpf_window_update(&mode_pwmp_hd->filter.handle, execute_res->dac);
|
||||||
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
{
|
||||||
if (mode_pwmp_hd_adjust->wait_count == 0)
|
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||||
{
|
{
|
||||||
if ((unsigned int)mode_pwmp_hd_adjust->ctrl_target < 100)
|
if ((unsigned int)mode_pwmp_hd_adjust->ctrl_target < 100)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->valvepos.valvepos_in[i] = execute_res->dac;
|
mode_pwmp_hd_adjust->valvepos.valvepos_in[i_open] = tmp;
|
||||||
i++;
|
i_open++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1535,6 +1744,24 @@ static void pwmp_hd_adjust_step_by_10_to_100(uint8_t *state, mode_pwmp_hd_adjust
|
||||||
mode_pwmp_hd_adjust->ctrl_target += 10;
|
mode_pwmp_hd_adjust->ctrl_target += 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||||
|
{
|
||||||
|
if ((unsigned int)mode_pwmp_hd_adjust->ctrl_target > 0)
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->valvepos.valvepos_in[i_close] = tmp;
|
||||||
|
i_close--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*state = next_state;
|
||||||
|
// mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 30;
|
||||||
|
}
|
||||||
|
mode_pwmp_hd_adjust->ctrl_target -= 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1556,7 +1783,8 @@ static void pwmp_hd_adjust_step_by_10_to_0(uint8_t *state, mode_pwmp_hd_adjust_s
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
static unsigned int i = 0;
|
static unsigned int i = 0;
|
||||||
/*将模式调整为控制模式*/
|
float32 tmp = 0.0f;
|
||||||
|
|
||||||
pwmp_control_update(FILTER_MEDIAN);
|
pwmp_control_update(FILTER_MEDIAN);
|
||||||
if (rt_data.loop_current >= 4.0)
|
if (rt_data.loop_current >= 4.0)
|
||||||
{
|
{
|
||||||
|
@ -1581,16 +1809,18 @@ static void pwmp_hd_adjust_step_by_10_to_0(uint8_t *state, mode_pwmp_hd_adjust_s
|
||||||
if (fabs(mode_pwmp_hd_adjust->real_error) > 1)
|
if (fabs(mode_pwmp_hd_adjust->real_error) > 1)
|
||||||
{
|
{
|
||||||
// 此处延时三秒钟
|
// 此处延时三秒钟
|
||||||
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 30;
|
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 50;
|
||||||
|
lpf_window_reset(&mode_pwmp_hd->filter.handle);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->wait_count--;
|
mode_pwmp_hd_adjust->wait_count--;
|
||||||
|
tmp = lpf_window_update(&mode_pwmp_hd->filter.handle, execute_res->dac);
|
||||||
if (mode_pwmp_hd_adjust->wait_count == 0)
|
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||||
{
|
{
|
||||||
if ((unsigned int)mode_pwmp_hd_adjust->ctrl_target > 0)
|
if ((unsigned int)mode_pwmp_hd_adjust->ctrl_target > 0)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust->valvepos.valvepos_de[i] = execute_res->dac;
|
mode_pwmp_hd_adjust->valvepos.valvepos_de[i] = tmp;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1607,21 +1837,147 @@ static void pwmp_hd_adjust_step_by_10_to_0(uint8_t *state, mode_pwmp_hd_adjust_s
|
||||||
static void pwmp_hd_adjust_valvepos_calculate(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
static void pwmp_hd_adjust_valvepos_calculate(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
||||||
{
|
{
|
||||||
*state = next_state;
|
*state = next_state;
|
||||||
|
mode_pwmp_hd_adjust->overimpulse_ex = mode_pwmp_hd_adjust->overimpulse_in;
|
||||||
|
mode_pwmp_hd->pwmp_save->storage.overimpulse_in = mode_pwmp_hd_adjust->overimpulse_in;
|
||||||
|
mode_pwmp_hd->pwmp_save->storage.overimpulse_ex = mode_pwmp_hd_adjust->overimpulse_ex;
|
||||||
for (unsigned int i = 0; i < 9; i++)
|
for (unsigned int i = 0; i < 9; i++)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_in[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
mode_pwmp_hd->pwmp_save->storage.valvepos_in[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_de[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
// mode_pwmp_hd->pwmp_save->storage.valvepos_de[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
||||||
}
|
}
|
||||||
for (unsigned int i = 0; i < 8; i++)
|
for (unsigned int i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
mode_pwmp_hd->pwmp_save->storage.valvepos_in_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
// mode_pwmp_hd->pwmp_save->storage.valvepos_de_k[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i + 1] - mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
mode_pwmp_hd->pwmp_save->storage.valvepos_in_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_in[i];
|
||||||
mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
// mode_pwmp_hd->pwmp_save->storage.valvepos_de_b[i] = mode_pwmp_hd_adjust->valvepos.valvepos_de[i];
|
||||||
}
|
}
|
||||||
mode_pwmp_hd->params_save_cb();
|
mode_pwmp_hd->params_save_cb();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*整定得到充气阶段的最大过冲量*/
|
||||||
|
static void pwmp_hd_adjust_overimpulse_inflate(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
||||||
|
{
|
||||||
|
static float32 max = 0.0;
|
||||||
|
static float32 tmp = 0.0;
|
||||||
|
static float32 last_tmp = 0.0;
|
||||||
|
if (!FSM_IS_WAIT(*state))
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->ctrl_target = 50.0; // 将目标阀位定为50%
|
||||||
|
mode_pwmp_hd_adjust->adjust_state = (mode_pwmp_hd_adjust_state_e)*state;
|
||||||
|
FSM_WAIT(mode_pwmp_hd_adjust->adjust_state); // 等放气完毕就可以切入到else里面了
|
||||||
|
*state = PWMP_HD_ADJUST_BLEEDING;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pwmp_control_update(FILTER_MEDIAN);
|
||||||
|
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
{
|
||||||
|
if (mode_pwmp_hd_adjust->ctrl_feedback < 50.0)
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd_adjust->arr_record_2);
|
||||||
|
}
|
||||||
|
else if (mode_pwmp_hd_adjust->ctrl_feedback >= 50.0)
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd_adjust->valvepos.valvepos_in[4]); // 输入百分之五十阀位处的稳定值
|
||||||
|
tmp = mode_pwmp_hd_adjust->ctrl_feedback - 50.0;
|
||||||
|
max = (tmp > max) ? tmp : max;
|
||||||
|
if (tmp <= last_tmp)
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->wait_count--;
|
||||||
|
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||||
|
{
|
||||||
|
*state = next_state;
|
||||||
|
mode_pwmp_hd_adjust->overimpulse_in = max;
|
||||||
|
pdctrl_out((mode_pwmp_hd_adjust->arr_record_2 * 1.2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (tmp > last_tmp)
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 5;
|
||||||
|
}
|
||||||
|
last_tmp = tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (mode_pwmp_hd_adjust->ctrl_feedback > 50.0)
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd_adjust->arr_record_2);
|
||||||
|
}
|
||||||
|
else if (mode_pwmp_hd_adjust->ctrl_feedback <= 50.0)
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd_adjust->valvepos.valvepos_in[4]); // 输入百分之五十阀位处的稳定值
|
||||||
|
tmp = fabs(mode_pwmp_hd_adjust->ctrl_feedback - 50.0);
|
||||||
|
max = (tmp > max) ? tmp : max;
|
||||||
|
if (tmp <= last_tmp)
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->wait_count--;
|
||||||
|
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||||
|
{
|
||||||
|
*state = next_state;
|
||||||
|
mode_pwmp_hd_adjust->overimpulse_in = max;
|
||||||
|
pdctrl_out((mode_pwmp_hd_adjust->arr_record_2 * 1.2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (tmp > last_tmp)
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 5;
|
||||||
|
}
|
||||||
|
last_tmp = tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*整定得到排气阶段的最大过冲量*/
|
||||||
|
static void pwmp_hd_adjust_overimpulse_exhaust(uint8_t *state, mode_pwmp_hd_adjust_state_e next_state)
|
||||||
|
{
|
||||||
|
static float32 max = 0.0;
|
||||||
|
static float32 tmp = 0.0;
|
||||||
|
static float32 last_tmp = 0.0;
|
||||||
|
pwmp_control_update(FILTER_MEDIAN);
|
||||||
|
if (!FSM_IS_WAIT(*state))
|
||||||
|
{
|
||||||
|
if (mode_pwmp_hd_adjust->ctrl_feedback <= 99.5)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mode_pwmp_hd_adjust->ctrl_target = 50.0; // 将目标阀位定为50%
|
||||||
|
mode_pwmp_hd_adjust->adjust_state = (mode_pwmp_hd_adjust_state_e)*state;
|
||||||
|
FSM_WAIT(mode_pwmp_hd_adjust->adjust_state); // 等放气完毕就可以切入到else里面了
|
||||||
|
*state = PWMP_HD_ADJUST_BLEEDING;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
if (mode_pwmp_hd_adjust->ctrl_feedback < 50.0)
|
||||||
|
{
|
||||||
|
pdctrl_out((mode_pwmp_hd_adjust->arr_record_0 * 0.8));
|
||||||
|
}
|
||||||
|
else if (mode_pwmp_hd_adjust->ctrl_feedback >= 50.0)
|
||||||
|
{
|
||||||
|
pdctrl_out(mode_pwmp_hd_adjust->valvepos.valvepos_de[4]); // 输入百分之五十阀位处的稳定值
|
||||||
|
tmp = 50.0 - mode_pwmp_hd_adjust->ctrl_feedback;
|
||||||
|
max = (tmp > max) ? tmp : max;
|
||||||
|
if (tmp <= last_tmp)
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->wait_count--;
|
||||||
|
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||||
|
{
|
||||||
|
*state = next_state;
|
||||||
|
mode_pwmp_hd_adjust->overimpulse_ex = max;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (tmp > last_tmp)
|
||||||
|
{
|
||||||
|
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 20;
|
||||||
|
}
|
||||||
|
last_tmp = tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////*状态机模式END*//////////////////////////////////////////////////////
|
//////////////////////////////////*状态机模式END*//////////////////////////////////////////////////////
|
||||||
|
|
||||||
//////////////////////////////*整定程序入口BEGIN*//////////////////////////////////////////////////////
|
//////////////////////////////*整定程序入口BEGIN*//////////////////////////////////////////////////////
|
||||||
|
@ -1668,10 +2024,16 @@ void pwmp_adjust(uint8_t *state)
|
||||||
break;
|
break;
|
||||||
/*GPS2000中特有的整定流程,整定得到充排气过程中每百分之10稳定阀位的控制值,并将控制值每10%区间做线性处理*/
|
/*GPS2000中特有的整定流程,整定得到充排气过程中每百分之10稳定阀位的控制值,并将控制值每10%区间做线性处理*/
|
||||||
case PWMP_HD_ADJUST_STEP_BY_10_TO_100:
|
case PWMP_HD_ADJUST_STEP_BY_10_TO_100:
|
||||||
pwmp_hd_adjust_step_by_10_to_100(state, PWMP_HD_ADJUST_STEP_BY_10_TO_0);
|
pwmp_hd_adjust_step_by_10_to_100(state, PWMP_HD_ADJUST_OVERIMPULSE_INFLATE);
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_STEP_BY_10_TO_0:
|
case PWMP_HD_ADJUST_STEP_BY_10_TO_0:
|
||||||
pwmp_hd_adjust_step_by_10_to_0(state, PWMP_HD_ADJUST_VALVEPOS_CALCULATE);
|
pwmp_hd_adjust_step_by_10_to_0(state, PWMP_HD_ADJUST_OVERIMPULSE_INFLATE);
|
||||||
|
break;
|
||||||
|
case PWMP_HD_ADJUST_OVERIMPULSE_INFLATE:
|
||||||
|
pwmp_hd_adjust_overimpulse_inflate(state, PWMP_HD_ADJUST_VALVEPOS_CALCULATE);
|
||||||
|
break;
|
||||||
|
case PWMP_HD_ADJUST_OVERIMPULSE_EXHAUST:
|
||||||
|
pwmp_hd_adjust_overimpulse_exhaust(state, PWMP_HD_ADJUST_VALVEPOS_CALCULATE);
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_VALVEPOS_CALCULATE:
|
case PWMP_HD_ADJUST_VALVEPOS_CALCULATE:
|
||||||
pwmp_hd_adjust_valvepos_calculate(state, PWMP_HD_ADJUST_STOP);
|
pwmp_hd_adjust_valvepos_calculate(state, PWMP_HD_ADJUST_STOP);
|
||||||
|
@ -1697,31 +2059,31 @@ void pwmp_adjust(uint8_t *state)
|
||||||
switch (ts)
|
switch (ts)
|
||||||
{
|
{
|
||||||
case PWMP_HD_ADJUST_IDEL:
|
case PWMP_HD_ADJUST_IDEL:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_IDEL;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_1;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_ROUGH_POSITION0:
|
case PWMP_HD_ADJUST_ROUGH_POSITION0:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_POSITION0;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_2;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_ACCURATE_POSITION0:
|
case PWMP_HD_ADJUST_ACCURATE_POSITION0:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_POSITION0;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_2;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_ROUGH_POSITION100:
|
case PWMP_HD_ADJUST_ROUGH_POSITION100:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_POSITION100;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_3;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_ACCURATE_POSITION100:
|
case PWMP_HD_ADJUST_ACCURATE_POSITION100:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_POSITION100;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_3;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_BLEEDING_TIMER:
|
case PWMP_HD_ADJUST_BLEEDING_TIMER:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_TIMER;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_4;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_AERATE_TIMER:
|
case PWMP_HD_ADJUST_AERATE_TIMER:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_TIMER;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_4;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_TUNING:
|
case PWMP_HD_ADJUST_TUNING:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_TUNING;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_5;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_SAVE:
|
case PWMP_HD_ADJUST_SAVE:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_SAVE;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STEP_6;
|
||||||
break;
|
break;
|
||||||
case PWMP_HD_ADJUST_STOP:
|
case PWMP_HD_ADJUST_STOP:
|
||||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STOP;
|
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STOP;
|
||||||
|
@ -2022,13 +2384,13 @@ void mode_pwmp_hd_process(void)
|
||||||
p->enter_count++;
|
p->enter_count++;
|
||||||
if (p->enter_count % WAIT_COUNT_MAX == 0) // 100ms输出一次
|
if (p->enter_count % WAIT_COUNT_MAX == 0) // 100ms输出一次
|
||||||
{
|
{
|
||||||
if (BIT_IS_SET(hc_24_state, BIT2))
|
if (BIT_IS_SET(bluetooth_state, BIT2))
|
||||||
{
|
{
|
||||||
// 蓝牙输出
|
// 蓝牙输出
|
||||||
char ble_data[128];
|
char ble_data[128];
|
||||||
uint8_t ble_len = 0;
|
uint8_t ble_len = 0;
|
||||||
osel_memset((uint8_t *)ble_data, 0, 128);
|
osel_memset((uint8_t *)ble_data, 0, 128);
|
||||||
// sprintf(ble_data, "%f,%f,%f,%d,%f\r\n", pid_target, show_actual, p->real_error, mode_pwm->output, rt_data.loop_current );
|
// sprintf(ble_data, "%f,%f,%f,%d,%f\r\n", rt_data.pid_target, show_actual, p->real_error, mode_pwm->output, rt_data.loop_current );
|
||||||
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_TEST)
|
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_TEST)
|
||||||
{
|
{
|
||||||
// sprintf(ble_data, "%f,%f,%f,%f\r\n", mode_pwmp_hd->control.ctrl_target, mode_pwmp_hd->control.ctrl_feedback, mode_pwmp_hd->control.real_error, rt_data.loop_current );
|
// sprintf(ble_data, "%f,%f,%f,%f\r\n", mode_pwmp_hd->control.ctrl_target, mode_pwmp_hd->control.ctrl_feedback, mode_pwmp_hd->control.real_error, rt_data.loop_current );
|
||||||
|
@ -2070,10 +2432,26 @@ void mode_pwmp_hd_process(void)
|
||||||
{
|
{
|
||||||
if (rt_data.loop_current < 4.5)
|
if (rt_data.loop_current < 4.5)
|
||||||
{
|
{
|
||||||
|
// if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
// {
|
||||||
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.2);
|
||||||
|
// }
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
||||||
}
|
}
|
||||||
else if (rt_data.loop_current > 19.5)
|
else if (rt_data.loop_current > 19.5)
|
||||||
{
|
{
|
||||||
|
// if (udevice.zero_power_condition == VALVE_OPEN)
|
||||||
|
// {
|
||||||
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.2);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
||||||
|
// }
|
||||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.2);
|
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin * 1.2);
|
||||||
}
|
}
|
||||||
else if (rt_data.loop_current >= 4.5 && rt_data.loop_current <= 19.5)
|
else if (rt_data.loop_current >= 4.5 && rt_data.loop_current <= 19.5)
|
||||||
|
@ -2158,7 +2536,10 @@ void mode_pwmp_hd_init(mode_interface_req_t *req, uint16_t positioner_model, mod
|
||||||
}
|
}
|
||||||
osel_memset((uint8_t *)mode_pwmp_hd_test, 0, sizeof(pwmp_hd_test_t));
|
osel_memset((uint8_t *)mode_pwmp_hd_test, 0, sizeof(pwmp_hd_test_t));
|
||||||
/*滤波初始化*/
|
/*滤波初始化*/
|
||||||
mode_pwmp_hd->filter.handle = lpf_window_init(20);
|
// mode_pwmp_hd->filter.handle = lpf_window_init(20); // 初始化控制模式中滤波窗口(数据大小为20)
|
||||||
|
lpf_window_init(&mode_pwmp_hd->filter.handle, 20);
|
||||||
|
lpf_window_init(&mode_pwmp_hd_adjust->filter.handle, 20);
|
||||||
|
// mode_pwmp_hd_adjust->filter.handle = lpf_window_init(20); // 初始化整定模式中滤波窗口(数据大小为20)
|
||||||
/*绑定要保存的参数与函数*/
|
/*绑定要保存的参数与函数*/
|
||||||
mode_pwmp_hd->pwmp_save = params;
|
mode_pwmp_hd->pwmp_save = params;
|
||||||
mode_pwmp_hd->params_save_cb = params_save_cb;
|
mode_pwmp_hd->params_save_cb = params_save_cb;
|
||||||
|
|
|
@ -2,15 +2,24 @@
|
||||||
#define __MODE_PWMP_HD_H__
|
#define __MODE_PWMP_HD_H__
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
#define EXECUTE_PLAN EXECUTE_PLAN_1
|
#define MODE_DEFAULT_AUTOLOAD 99 // 预分频系数
|
||||||
|
#define WAIT_COUNT_MAX 2 // 蓝牙等待最大次数
|
||||||
|
|
||||||
|
#define VIP_H_EN_HD 1 // 高电压输出开关
|
||||||
|
///////////////////////////////////////*算法整定部分宏定义BEGIN*////////////////////////////////////////
|
||||||
|
|
||||||
|
#define TIME_CYCLE 0.01f // 定义时间周期:10ms
|
||||||
|
#define FSM_WAIT(st) BIT_SET(st, BIT7)
|
||||||
|
#define FSM_IS_WAIT(st) (st & BIT7)
|
||||||
|
#define DIFF_ADC 10U
|
||||||
|
#define DIFF_ADC_MAX 6U
|
||||||
|
|
||||||
|
///////////////////////////////////////*算法整定部分宏定义END*///////////////////////////////////////////
|
||||||
|
|
||||||
|
#define EXECUTE_PLAN EXECUTE_PLAN_2
|
||||||
|
|
||||||
/*----------------------------------------*/
|
/*----------------------------------------*/
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
|
||||||
ANGULAR_TRAVEL,
|
|
||||||
LINEAR_TRAVEL,
|
|
||||||
} mode_pwmp_hd_valve_type_e; // 阀门类型
|
|
||||||
typedef enum
|
|
||||||
{
|
{
|
||||||
PWMP_HD_PROCESS_CONTROL,
|
PWMP_HD_PROCESS_CONTROL,
|
||||||
PWMP_HD_PROCESS_ADJUST,
|
PWMP_HD_PROCESS_ADJUST,
|
||||||
|
@ -19,9 +28,28 @@ typedef enum
|
||||||
PWMP_HD_PROCESS_STOP,
|
PWMP_HD_PROCESS_STOP,
|
||||||
} mode_pwmp_hd_process_state_e; // 处理状态
|
} mode_pwmp_hd_process_state_e; // 处理状态
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
INFLATE = 0,
|
||||||
|
DEFLATE,
|
||||||
|
} mode_pwmp_hd_action_e; // 运动状态(充气/排气)
|
||||||
|
|
||||||
/*需要存储的变量*/
|
/*需要存储的变量*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
/*充气过程:各百分之十阀位的控制信号值*/
|
||||||
|
uint16_t valvepos_in[9]; // 充气过程中9个不同阀位的控制信号值
|
||||||
|
/*排气过程:各百分之十阀位的控制信号值*/
|
||||||
|
uint16_t valvepos_de[9]; // 排气过程中9个不同阀位的控制信号值
|
||||||
|
float32_t valvepos_in_k[8];
|
||||||
|
float32_t valvepos_de_k[8];
|
||||||
|
float32_t valvepos_in_b[8];
|
||||||
|
float32_t valvepos_de_b[8];
|
||||||
|
|
||||||
|
/*最大过冲量*/
|
||||||
|
float32_t overimpulse_in;
|
||||||
|
float32_t overimpulse_ex;
|
||||||
|
|
||||||
uint8_t tuned_flag; // 整定标志 0:未整定,1:整定中,2:整定成功,3:整定失败
|
uint8_t tuned_flag; // 整定标志 0:未整定,1:整定中,2:整定成功,3:整定失败
|
||||||
uint16_t startup_value; // 阀位启动值
|
uint16_t startup_value; // 阀位启动值
|
||||||
uint16_t arr_diff; // 控制区间
|
uint16_t arr_diff; // 控制区间
|
||||||
|
@ -39,8 +67,9 @@ typedef struct
|
||||||
uint16_t all_open_time; // 全开时间
|
uint16_t all_open_time; // 全开时间
|
||||||
uint16_t all_close_time; // 全关时间
|
uint16_t all_close_time; // 全关时间
|
||||||
uint16_t all_open_time_full; // 最大信号全开时间
|
uint16_t all_open_time_full; // 最大信号全开时间
|
||||||
|
uint16_t all_close_time_full; // 最大信号全关时间
|
||||||
uint16_t prov_flag; // 磁条安装的正反:倒装:0 正装:1
|
uint16_t prov_flag; // 磁条安装的正反:倒装:0 正装:1
|
||||||
uint16_t valve_type; // 阀门正反行程:气开:VALVE_CLOSE 气关:VALVE_OPEN
|
uint16_t valve_type; // 阀门正反行程:气开:ATO 气关:ATC
|
||||||
float32 kp;
|
float32 kp;
|
||||||
float32 ki;
|
float32 ki;
|
||||||
float32 kd;
|
float32 kd;
|
||||||
|
@ -54,19 +83,36 @@ typedef struct
|
||||||
float32 real_error; // 实际误差
|
float32 real_error; // 实际误差
|
||||||
uint16_t current_adc; // 当前ADC值
|
uint16_t current_adc; // 当前ADC值
|
||||||
uint16_t small_trip_current_adc; // 小行程反馈当前ADC值
|
uint16_t small_trip_current_adc; // 小行程反馈当前ADC值
|
||||||
|
uint16_t pwmp_min_stable; // 稳定区间下限值
|
||||||
|
uint16_t pwmp_max_stable; // 稳定区间上限值
|
||||||
} mode_pwmp_hd_control_t;
|
} mode_pwmp_hd_control_t;
|
||||||
|
|
||||||
/*滤波处理*/
|
/*滤波处理*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
lpf_t actual_lpf;
|
|
||||||
lpf_t target_lpf;
|
|
||||||
lpf_window_t handle;
|
lpf_window_t handle;
|
||||||
|
uint16_t value;
|
||||||
} mode_pwmp_hd_filter_t;
|
} mode_pwmp_hd_filter_t;
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
//
|
||||||
|
uint8_t data[300];
|
||||||
|
// 自定义数据结构
|
||||||
|
mode_pwmp_hd_storage_data_t storage;
|
||||||
|
} mode_pwmp_hd_params_u;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
INAUTO_C, // PID控制器开始模式
|
||||||
|
OFFAUTO_C, // PID控制器关闭模式
|
||||||
|
} mode_pwmp_hd_pid_mode_e;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
mode_pwmp_hd_pid_mode_e pid_mode; // PID控制模式
|
||||||
|
mode_pwmp_hd_action_e action; // 运动状态(充气/排气)
|
||||||
|
|
||||||
uint8_t lcd_adjust_state; // LCD自整定流程状态
|
uint8_t lcd_adjust_state; // LCD自整定流程状态
|
||||||
float32 duty_percent; // 占空比
|
float32 duty_percent; // 占空比
|
||||||
float32 current_electric; // 电流
|
float32 current_electric; // 电流
|
||||||
|
@ -80,9 +126,11 @@ typedef struct
|
||||||
uint16_t current_adc; // 当前位置反馈的AD值
|
uint16_t current_adc; // 当前位置反馈的AD值
|
||||||
uint32_t count; // 计数
|
uint32_t count; // 计数
|
||||||
|
|
||||||
|
float32 valvepos_stable; // 10%-90%阀位之间的稳定控制值
|
||||||
|
|
||||||
mode_pwmp_hd_control_t control;
|
mode_pwmp_hd_control_t control;
|
||||||
mode_pwmp_hd_filter_t filter;
|
mode_pwmp_hd_filter_t filter;
|
||||||
mode_pwmp_hd_storage_data_t *pwmp_save;
|
mode_pwmp_hd_params_u *pwmp_save;
|
||||||
void (*params_save_cb)(void);
|
void (*params_save_cb)(void);
|
||||||
} mode_pwmp_hd_t;
|
} mode_pwmp_hd_t;
|
||||||
|
|
||||||
|
@ -145,6 +193,12 @@ typedef enum
|
||||||
PWMP_HD_ADJUST_SAVE, // 存储变量
|
PWMP_HD_ADJUST_SAVE, // 存储变量
|
||||||
PWMP_HD_ADJUST_BLEEDING, // 在整定状态中放气
|
PWMP_HD_ADJUST_BLEEDING, // 在整定状态中放气
|
||||||
PWMP_HD_ADJUST_BLEEDING_POSITION0, // 放气位置0
|
PWMP_HD_ADJUST_BLEEDING_POSITION0, // 放气位置0
|
||||||
|
PWMP_HD_ADJUST_INITIATE, // 启动值
|
||||||
|
PWMP_HD_ADJUST_STEP_BY_10_TO_100, // 由0-100找到控制值
|
||||||
|
PWMP_HD_ADJUST_STEP_BY_10_TO_0, // 由100-0找到控制值
|
||||||
|
PWMP_HD_ADJUST_VALVEPOS_CALCULATE, // 对各区间阀位控制值进行线性化处理
|
||||||
|
PWMP_HD_ADJUST_OVERIMPULSE_INFLATE, // 求取充气过程中的最大过冲量
|
||||||
|
PWMP_HD_ADJUST_OVERIMPULSE_EXHAUST, // 求取排气过程中的最大过冲量
|
||||||
PWMP_HD_ADJUST_STOP,
|
PWMP_HD_ADJUST_STOP,
|
||||||
PWMP_HD_ADJUST_FAIL, // 整定失败
|
PWMP_HD_ADJUST_FAIL, // 整定失败
|
||||||
PWMP_HD_ADJUST_TEST,
|
PWMP_HD_ADJUST_TEST,
|
||||||
|
@ -164,9 +218,27 @@ typedef enum
|
||||||
PWMP_HD_ADJUST_RESULT_FAIL,
|
PWMP_HD_ADJUST_RESULT_FAIL,
|
||||||
} mode_pwmp_hd_adjust_result_e; // 整定结果
|
} mode_pwmp_hd_adjust_result_e; // 整定结果
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
/*充气过程:各百分之十阀位的控制信号值*/
|
||||||
|
uint16_t valvepos_in[9]; // 充气过程中9个不同阀位的控制信号值
|
||||||
|
/*排气过程:各百分之十阀位的控制信号值*/
|
||||||
|
uint16_t valvepos_de[9]; // 排气过程中9个不同阀位的控制信号值
|
||||||
|
} mode_pwmp_hd_adjust_valvepos_t;
|
||||||
|
|
||||||
|
/*滤波处理*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
lpf_window_t handle;
|
||||||
|
uint16_t value;
|
||||||
|
} mode_pwmp_hd_adjust_filter_t;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
mode_pwmp_hd_adjust_state_e adjust_state;
|
mode_pwmp_hd_adjust_state_e adjust_state;
|
||||||
|
mode_pwmp_hd_adjust_valvepos_t valvepos; // 记录处于每10%阀位的控制信号值
|
||||||
|
|
||||||
|
mode_pwmp_hd_adjust_filter_t filter;
|
||||||
|
|
||||||
volatile uint16_t wait_count;
|
volatile uint16_t wait_count;
|
||||||
volatile uint16_t psb_adc;
|
volatile uint16_t psb_adc;
|
||||||
|
@ -177,6 +249,7 @@ typedef struct
|
||||||
BOOL adc_0_100_flag; // 判断0-100移动过程中ad值是增大还是减少,TRUE 增大,FALSE 减小
|
BOOL adc_0_100_flag; // 判断0-100移动过程中ad值是增大还是减少,TRUE 增大,FALSE 减小
|
||||||
BOOL flag_stable_begin;
|
BOOL flag_stable_begin;
|
||||||
BOOL flag_stable_end;
|
BOOL flag_stable_end;
|
||||||
|
BOOL all_bleed_time_flag;
|
||||||
|
|
||||||
uint16_t adc_record_0; // 记录放气时阀门最小位置ad值
|
uint16_t adc_record_0; // 记录放气时阀门最小位置ad值
|
||||||
uint16_t adc_record_1; // 记录放气时阀门最小位置ad值
|
uint16_t adc_record_1; // 记录放气时阀门最小位置ad值
|
||||||
|
@ -192,9 +265,19 @@ typedef struct
|
||||||
uint32_t all_open_time; // 全开时间
|
uint32_t all_open_time; // 全开时间
|
||||||
uint32_t all_open_time_full; // 信号为最大输出时的全开时间
|
uint32_t all_open_time_full; // 信号为最大输出时的全开时间
|
||||||
uint32_t all_close_time; // 全关时间
|
uint32_t all_close_time; // 全关时间
|
||||||
BOOL all_close_time_flag;
|
uint32_t all_close_time_full; // 信号为最大输出时的全关时间
|
||||||
uint32_t tmp_time; // 临时用来记录全开全关/整定时间
|
uint32_t tmp_time; // 临时用来记录全开全关/整定时间
|
||||||
|
|
||||||
|
uint32_t current_0; // 0位置电流大小
|
||||||
|
uint32_t current_100; // 100位置电流大小
|
||||||
|
|
||||||
|
float32 ctrl_target; // 控制目标值
|
||||||
|
float32 real_error; // 实际误差
|
||||||
|
float32 ctrl_feedback; // 反馈值
|
||||||
|
|
||||||
|
float32 overimpulse_in; // 充气过程的最大超调量
|
||||||
|
float32 overimpulse_ex; // 排气过程的最大超调量
|
||||||
|
|
||||||
/*输出值*/
|
/*输出值*/
|
||||||
uint16_t arr_default; // 默认计数器(推动计数值)
|
uint16_t arr_default; // 默认计数器(推动计数值)
|
||||||
volatile uint16_t arr_current; // 当前推动阀门的计数器
|
volatile uint16_t arr_current; // 当前推动阀门的计数器
|
||||||
|
@ -287,7 +370,7 @@ typedef struct
|
||||||
} execute_rsp_hd_t;
|
} execute_rsp_hd_t;
|
||||||
/////////////////////////////////////////*控制算法END*////////////////////////////////////////
|
/////////////////////////////////////////*控制算法END*////////////////////////////////////////
|
||||||
|
|
||||||
void mode_pwmp_hd_init(mode_interface_req_t *req, uint16_t positioner_model, mode_pwmp_hd_storage_data_t *params, void (*params_save_cb)(void));
|
void mode_pwmp_hd_init(mode_interface_req_t *req, 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_dinit(void);
|
||||||
void mode_pwmp_hd_process(void);
|
void mode_pwmp_hd_process(void);
|
||||||
void pwmp_hd_process_state_set(mode_pwmp_hd_process_state_e state);
|
void pwmp_hd_process_state_set(mode_pwmp_hd_process_state_e state);
|
||||||
|
|
Reference in New Issue