合并代码
This commit is contained in:
parent
066fdc65f1
commit
cbacb87051
106
Core/Src/main.c
106
Core/Src/main.c
|
@ -28,7 +28,7 @@
|
|||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include <stdio.h>
|
||||
|
||||
#include "bsp.h"
|
||||
#include "delay.h"
|
||||
#include "board.h"
|
||||
|
@ -68,16 +68,30 @@ void PeriphCommonClock_Config(void);
|
|||
/* Private user code ---------------------------------------------------------*/
|
||||
/* 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 */
|
||||
|
||||
/**
|
||||
* @brief The application entry point.
|
||||
* @retval int
|
||||
*/
|
||||
* @brief The application entry point.
|
||||
* @retval int
|
||||
*/
|
||||
int main(void)
|
||||
{
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
||||
/* MCU Configuration--------------------------------------------------------*/
|
||||
|
@ -90,21 +104,21 @@ int main(void)
|
|||
NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
|
||||
|
||||
/* SysTick_IRQn interrupt configuration */
|
||||
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 END Init */
|
||||
|
||||
/* Configure the system clock */
|
||||
SystemClock_Config();
|
||||
|
||||
/* Configure the peripherals common clocks */
|
||||
/* Configure the peripherals common clocks */
|
||||
PeriphCommonClock_Config();
|
||||
|
||||
/* USER CODE BEGIN SysInit */
|
||||
delay_init((SystemCoreClock / 1000000));
|
||||
delay_ms(500); // wait for power stable
|
||||
|
||||
// delay_ms(500); // wait for power stable
|
||||
/* USER CODE END SysInit */
|
||||
|
||||
/* Initialize all configured peripherals */
|
||||
|
@ -124,13 +138,17 @@ int main(void)
|
|||
MX_TIM16_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
leds_dinit(); // LED Deinitialization
|
||||
lcd_dinit(); // LCD screen Deinitialization
|
||||
hart_uart_dinit(); // HART serial port Deinitialization
|
||||
hart_ble_dinit(); // Bluetooth Deinitialization
|
||||
leds_dinit(); // LED Deinitialization
|
||||
lcd_dinit(); // LCD screen Deinitialization
|
||||
DISABLE_TIM(PDCTRL_PWM_TIM);
|
||||
|
||||
my_mem_init(SRAMIN); // Initialize internal memory pool 1
|
||||
my_mem_init(SRAMEX); // Initialize external memory pool 2
|
||||
board_init(); // Initialize board
|
||||
app_init(); // Initialize application
|
||||
|
||||
app_init(); // Initialize application
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
|
@ -146,13 +164,13 @@ int main(void)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief System Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
* @brief System Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
void SystemClock_Config(void)
|
||||
{
|
||||
LL_FLASH_SetLatency(LL_FLASH_LATENCY_0);
|
||||
while(LL_FLASH_GetLatency()!= LL_FLASH_LATENCY_0)
|
||||
while (LL_FLASH_GetLatency() != LL_FLASH_LATENCY_0)
|
||||
{
|
||||
}
|
||||
LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE1);
|
||||
|
@ -161,50 +179,46 @@ void SystemClock_Config(void)
|
|||
}
|
||||
LL_RCC_HSE_Enable();
|
||||
|
||||
/* Wait till HSE is ready */
|
||||
while(LL_RCC_HSE_IsReady() != 1)
|
||||
/* Wait till HSE is ready */
|
||||
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_Enable();
|
||||
|
||||
/* Wait till PLL is ready */
|
||||
while(LL_RCC_PLL_IsReady() != 1)
|
||||
/* Wait till PLL is ready */
|
||||
while (LL_RCC_PLL_IsReady() != 1)
|
||||
{
|
||||
|
||||
}
|
||||
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
|
||||
|
||||
/* Wait till System clock is ready */
|
||||
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
|
||||
/* Wait till System clock is ready */
|
||||
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_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
|
||||
|
||||
LL_Init1msTick(4000000);
|
||||
LL_Init1msTick(5529600);
|
||||
|
||||
LL_SetSystemCoreClock(4000000);
|
||||
LL_SetSystemCoreClock(5529600);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Peripherals Common Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
* @brief Peripherals Common Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
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_Enable();
|
||||
|
||||
/* Wait till PLLSAI1 is ready */
|
||||
while(LL_RCC_PLLSAI1_IsReady() != 1)
|
||||
/* Wait till PLLSAI1 is ready */
|
||||
while (LL_RCC_PLLSAI1_IsReady() != 1)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -213,9 +227,9 @@ void PeriphCommonClock_Config(void)
|
|||
/* USER CODE END 4 */
|
||||
|
||||
/**
|
||||
* @brief This function is executed in case of error occurrence.
|
||||
* @retval None
|
||||
*/
|
||||
* @brief This function is executed in case of error occurrence.
|
||||
* @retval None
|
||||
*/
|
||||
void Error_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN Error_Handler_Debug */
|
||||
|
@ -227,14 +241,14 @@ void Error_Handler(void)
|
|||
/* USER CODE END Error_Handler_Debug */
|
||||
}
|
||||
|
||||
#ifdef USE_FULL_ASSERT
|
||||
#ifdef USE_FULL_ASSERT
|
||||
/**
|
||||
* @brief Reports the name of the source file and the source line number
|
||||
* where the assert_param error has occurred.
|
||||
* @param file: pointer to the source file name
|
||||
* @param line: assert_param error line source number
|
||||
* @retval None
|
||||
*/
|
||||
* @brief Reports the name of the source file and the source line number
|
||||
* where the assert_param error has occurred.
|
||||
* @param file: pointer to the source file name
|
||||
* @param line: assert_param error line source number
|
||||
* @retval None
|
||||
*/
|
||||
void assert_failed(uint8_t *file, uint32_t line)
|
||||
{
|
||||
/* USER CODE BEGIN 6 */
|
||||
|
|
|
@ -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">
|
||||
|
||||
<SchemaVersion>1.0</SchemaVersion>
|
||||
|
@ -28,7 +28,7 @@
|
|||
<TargetOption>
|
||||
<CLKADS>8000000</CLKADS>
|
||||
<OPTTT>
|
||||
<gFlags>0</gFlags>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>0</RunSim>
|
||||
<RunTarget>1</RunTarget>
|
||||
|
@ -45,7 +45,7 @@
|
|||
<PageWidth>79</PageWidth>
|
||||
<PageLength>66</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath />
|
||||
<ListingPath></ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
|
@ -103,18 +103,18 @@
|
|||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>0</nTsel>
|
||||
<sDll />
|
||||
<sDllPa />
|
||||
<sDlgDll />
|
||||
<sDlgPa />
|
||||
<sIfile />
|
||||
<tDll />
|
||||
<tDllPa />
|
||||
<tDlgDll />
|
||||
<tDlgPa />
|
||||
<tIfile />
|
||||
<pMon>BIN\UL2CM3.DLL</pMon>
|
||||
<nTsel>6</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
|
@ -123,7 +123,7 @@
|
|||
<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>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
|
@ -153,19 +153,19 @@
|
|||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable />
|
||||
<LintConfigFile />
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName />
|
||||
<pszMrule />
|
||||
<pSingCmds />
|
||||
<pMultCmds />
|
||||
<pMisraNamep />
|
||||
<pszMrulep />
|
||||
<pSingCmdsp />
|
||||
<pMultCmdsp />
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
<pMisraNamep></pMisraNamep>
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>1</EnableFlashSeq>
|
||||
|
@ -183,10 +183,10 @@
|
|||
<TargetOption>
|
||||
<CLKADS>12000000</CLKADS>
|
||||
<OPTTT>
|
||||
<gFlags>0</gFlags>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>1</RunSim>
|
||||
<RunTarget>0</RunTarget>
|
||||
<RunSim>0</RunSim>
|
||||
<RunTarget>1</RunTarget>
|
||||
<RunAbUc>0</RunAbUc>
|
||||
</OPTTT>
|
||||
<OPTHX>
|
||||
|
@ -200,7 +200,7 @@
|
|||
<PageWidth>79</PageWidth>
|
||||
<PageLength>66</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath />
|
||||
<ListingPath></ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
|
@ -234,8 +234,8 @@
|
|||
</OPTFL>
|
||||
<CpuCode>18</CpuCode>
|
||||
<DebugOpt>
|
||||
<uSim>1</uSim>
|
||||
<uTrg>0</uTrg>
|
||||
<uSim>0</uSim>
|
||||
<uTrg>1</uTrg>
|
||||
<sLdApp>1</sLdApp>
|
||||
<sGomain>1</sGomain>
|
||||
<sRbreak>1</sRbreak>
|
||||
|
@ -244,7 +244,7 @@
|
|||
<sRfunc>1</sRfunc>
|
||||
<sRbox>1</sRbox>
|
||||
<tLdApp>1</tLdApp>
|
||||
<tGomain>0</tGomain>
|
||||
<tGomain>1</tGomain>
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
|
@ -258,20 +258,27 @@
|
|||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>-1</nTsel>
|
||||
<sDll />
|
||||
<sDllPa />
|
||||
<sDlgDll />
|
||||
<sDlgPa />
|
||||
<sIfile />
|
||||
<tDll />
|
||||
<tDllPa />
|
||||
<tDlgDll />
|
||||
<tDlgPa />
|
||||
<tIfile />
|
||||
<pMon />
|
||||
<nTsel>4</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>Segger\JL2CM3.dll</pMon>
|
||||
</DebugOpt>
|
||||
<Breakpoint />
|
||||
<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/>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
|
@ -301,19 +308,26 @@
|
|||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable />
|
||||
<LintConfigFile />
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName />
|
||||
<pszMrule />
|
||||
<pSingCmds />
|
||||
<pMultCmds />
|
||||
<pMisraNamep />
|
||||
<pszMrulep />
|
||||
<pSingCmdsp />
|
||||
<pMultCmdsp />
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
<pMisraNamep></pMisraNamep>
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>1</EnableFlashSeq>
|
||||
<EnableLog>0</EnableLog>
|
||||
<Protocol>2</Protocol>
|
||||
<DbgClock>10000000</DbgClock>
|
||||
</DebugDescription>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
|
@ -324,7 +338,7 @@
|
|||
<TargetOption>
|
||||
<CLKADS>12000000</CLKADS>
|
||||
<OPTTT>
|
||||
<gFlags>0</gFlags>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>0</RunSim>
|
||||
<RunTarget>1</RunTarget>
|
||||
|
@ -341,7 +355,7 @@
|
|||
<PageWidth>79</PageWidth>
|
||||
<PageLength>66</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath />
|
||||
<ListingPath></ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
|
@ -399,39 +413,76 @@
|
|||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>0</nTsel>
|
||||
<sDll />
|
||||
<sDllPa />
|
||||
<sDlgDll />
|
||||
<sDlgPa />
|
||||
<sIfile />
|
||||
<tDll />
|
||||
<tDllPa />
|
||||
<tDlgDll />
|
||||
<tDlgPa />
|
||||
<tIfile />
|
||||
<pMon>BIN\UL2CM3.DLL</pMon>
|
||||
<nTsel>6</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
</DebugOpt>
|
||||
<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>
|
||||
<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/>
|
||||
<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>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
<DebugFlag>
|
||||
<trace>0</trace>
|
||||
<periodic>0</periodic>
|
||||
<aLwin>0</aLwin>
|
||||
<periodic>1</periodic>
|
||||
<aLwin>1</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>0</viewmode>
|
||||
<viewmode>1</viewmode>
|
||||
<vrSel>0</vrSel>
|
||||
<aSym>0</aSym>
|
||||
<aTbox>0</aTbox>
|
||||
|
@ -449,22 +500,22 @@
|
|||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable />
|
||||
<LintConfigFile />
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName />
|
||||
<pszMrule />
|
||||
<pSingCmds />
|
||||
<pMultCmds />
|
||||
<pMisraNamep />
|
||||
<pszMrulep />
|
||||
<pSingCmdsp />
|
||||
<pMultCmdsp />
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
<pMisraNamep></pMisraNamep>
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
<DebugDescription>
|
||||
<Enable>1</Enable>
|
||||
<EnableFlashSeq>1</EnableFlashSeq>
|
||||
<EnableFlashSeq>0</EnableFlashSeq>
|
||||
<EnableLog>0</EnableLog>
|
||||
<Protocol>2</Protocol>
|
||||
<DbgClock>10000000</DbgClock>
|
||||
|
@ -941,8 +992,8 @@
|
|||
</Group>
|
||||
|
||||
<Group>
|
||||
<GroupName>User/hart</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<GroupName>User/application/mode</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
|
@ -953,8 +1004,8 @@
|
|||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\User\hart\hart.c</PathWithFileName>
|
||||
<FilenameWithoutPath>hart.c</FilenameWithoutPath>
|
||||
<PathWithFileName>..\User\application\mode\mode.c</PathWithFileName>
|
||||
<FilenameWithoutPath>mode.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
@ -965,14 +1016,46 @@
|
|||
<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>
|
||||
<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>
|
||||
<FilenameWithoutPath>hart_frame.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>38</FileNumber>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>40</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -983,8 +1066,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>39</FileNumber>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>41</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -995,8 +1078,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>40</FileNumber>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>42</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1007,8 +1090,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>41</FileNumber>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>43</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1019,8 +1102,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>7</GroupNumber>
|
||||
<FileNumber>42</FileNumber>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>44</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1039,8 +1122,8 @@
|
|||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>43</FileNumber>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>45</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1051,8 +1134,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>44</FileNumber>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>46</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1063,8 +1146,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>45</FileNumber>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>47</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1075,8 +1158,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>46</FileNumber>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>48</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1087,8 +1170,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>47</FileNumber>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>49</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1099,8 +1182,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>48</FileNumber>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>50</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1111,8 +1194,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>8</GroupNumber>
|
||||
<FileNumber>49</FileNumber>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>51</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1131,8 +1214,8 @@
|
|||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>50</FileNumber>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>52</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1143,8 +1226,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>51</FileNumber>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>53</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1155,8 +1238,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>9</GroupNumber>
|
||||
<FileNumber>52</FileNumber>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>54</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1175,8 +1258,8 @@
|
|||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>53</FileNumber>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>55</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1187,8 +1270,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>54</FileNumber>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>56</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1199,8 +1282,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>55</FileNumber>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>57</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1211,8 +1294,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>56</FileNumber>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>58</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1223,8 +1306,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>57</FileNumber>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>59</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1235,8 +1318,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>10</GroupNumber>
|
||||
<FileNumber>58</FileNumber>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>60</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1255,8 +1338,8 @@
|
|||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>59</FileNumber>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>61</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1267,8 +1350,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>11</GroupNumber>
|
||||
<FileNumber>60</FileNumber>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>62</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1287,8 +1370,8 @@
|
|||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>61</FileNumber>
|
||||
<GroupNumber>13</GroupNumber>
|
||||
<FileNumber>63</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1299,8 +1382,8 @@
|
|||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>12</GroupNumber>
|
||||
<FileNumber>62</FileNumber>
|
||||
<GroupNumber>13</GroupNumber>
|
||||
<FileNumber>64</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1319,8 +1402,8 @@
|
|||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>13</GroupNumber>
|
||||
<FileNumber>63</FileNumber>
|
||||
<GroupNumber>14</GroupNumber>
|
||||
<FileNumber>65</FileNumber>
|
||||
<FileType>4</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -1332,38 +1415,6 @@
|
|||
</File>
|
||||
</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>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="project_projx.xsd">
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
|
||||
|
||||
<SchemaVersion>2.1</SchemaVersion>
|
||||
|
||||
<Header>### uVision Project, (C) Keil Software</Header>
|
||||
|
||||
<Targets>
|
||||
<Target>
|
||||
<TargetName>controller</TargetName>
|
||||
|
@ -16,28 +19,28 @@
|
|||
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||
<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>
|
||||
<FlashUtilSpec />
|
||||
<StartupFile />
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile></StartupFile>
|
||||
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
||||
<DeviceId>0</DeviceId>
|
||||
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
||||
<MemoryEnv />
|
||||
<Cmp />
|
||||
<Asm />
|
||||
<Linker />
|
||||
<OHString />
|
||||
<InfinionOptionDll />
|
||||
<SLE66CMisc />
|
||||
<SLE66AMisc />
|
||||
<SLE66LinkerMisc />
|
||||
<MemoryEnv></MemoryEnv>
|
||||
<Cmp></Cmp>
|
||||
<Asm></Asm>
|
||||
<Linker></Linker>
|
||||
<OHString></OHString>
|
||||
<InfinionOptionDll></InfinionOptionDll>
|
||||
<SLE66CMisc></SLE66CMisc>
|
||||
<SLE66AMisc></SLE66AMisc>
|
||||
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
||||
<bCustSvd>0</bCustSvd>
|
||||
<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>
|
||||
<LibPath />
|
||||
<RegisterFilePath />
|
||||
<DBRegisterFilePath />
|
||||
<LibPath></LibPath>
|
||||
<RegisterFilePath></RegisterFilePath>
|
||||
<DBRegisterFilePath></DBRegisterFilePath>
|
||||
<TargetStatus>
|
||||
<Error>0</Error>
|
||||
<ExitCodeStop>0</ExitCodeStop>
|
||||
|
@ -52,15 +55,15 @@
|
|||
<CreateHexFile>1</CreateHexFile>
|
||||
<DebugInformation>1</DebugInformation>
|
||||
<BrowseInformation>1</BrowseInformation>
|
||||
<ListingPath />
|
||||
<ListingPath></ListingPath>
|
||||
<HexFormatSelection>1</HexFormatSelection>
|
||||
<Merge32K>0</Merge32K>
|
||||
<CreateBatchFile>0</CreateBatchFile>
|
||||
<BeforeCompile>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name />
|
||||
<UserProg2Name />
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopU1X>0</nStopU1X>
|
||||
|
@ -69,8 +72,8 @@
|
|||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name />
|
||||
<UserProg2Name />
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopB1X>0</nStopB1X>
|
||||
|
@ -87,7 +90,7 @@
|
|||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString />
|
||||
<SVCSIdString></SVCSIdString>
|
||||
</TargetCommonOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>0</UseCPPCompiler>
|
||||
|
@ -101,8 +104,8 @@
|
|||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||
<PublicsOnly>0</PublicsOnly>
|
||||
<StopOnExitCode>3</StopOnExitCode>
|
||||
<CustomArgument />
|
||||
<IncludeLibraryModules />
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>0</ComprImg>
|
||||
</CommonProperty>
|
||||
<DllOption>
|
||||
|
@ -136,10 +139,10 @@
|
|||
<bUseTDR>1</bUseTDR>
|
||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||
<Flash3>"" ()</Flash3>
|
||||
<Flash4 />
|
||||
<pFcarmOut />
|
||||
<pFcarmGrp />
|
||||
<pFcArmRoot />
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
<pFcarmGrp></pFcarmGrp>
|
||||
<pFcArmRoot></pFcArmRoot>
|
||||
<FcArmLst>0</FcArmLst>
|
||||
</Utilities>
|
||||
<TargetArmAds>
|
||||
|
@ -172,7 +175,7 @@
|
|||
<RvctClst>0</RvctClst>
|
||||
<GenPPlst>0</GenPPlst>
|
||||
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
||||
<RvctDeviceName />
|
||||
<RvctDeviceName></RvctDeviceName>
|
||||
<mOS>0</mOS>
|
||||
<uocRom>0</uocRom>
|
||||
<uocRam>0</uocRam>
|
||||
|
@ -306,7 +309,7 @@
|
|||
<Size>0x8000</Size>
|
||||
</OCR_RVCT10>
|
||||
</OnChipMemories>
|
||||
<RvctStartVector />
|
||||
<RvctStartVector></RvctStartVector>
|
||||
</ArmAdsMisc>
|
||||
<Cads>
|
||||
<interw>1</interw>
|
||||
|
@ -335,7 +338,7 @@
|
|||
<VariousControls>
|
||||
<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>
|
||||
<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>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
|
@ -351,10 +354,10 @@
|
|||
<useXO>0</useXO>
|
||||
<ClangAsOpt>4</ClangAsOpt>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
<LDads>
|
||||
|
@ -364,15 +367,15 @@
|
|||
<noStLib>0</noStLib>
|
||||
<RepFail>1</RepFail>
|
||||
<useFile>0</useFile>
|
||||
<TextAddressRange />
|
||||
<DataAddressRange />
|
||||
<pXoBase />
|
||||
<TextAddressRange></TextAddressRange>
|
||||
<DataAddressRange></DataAddressRange>
|
||||
<pXoBase></pXoBase>
|
||||
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
||||
<IncludeLibs />
|
||||
<IncludeLibsPath />
|
||||
<Misc />
|
||||
<LinkerInputFile />
|
||||
<DisabledWarnings />
|
||||
<IncludeLibs></IncludeLibs>
|
||||
<IncludeLibsPath></IncludeLibsPath>
|
||||
<Misc></Misc>
|
||||
<LinkerInputFile></LinkerInputFile>
|
||||
<DisabledWarnings></DisabledWarnings>
|
||||
</LDads>
|
||||
</TargetArmAds>
|
||||
</TargetOption>
|
||||
|
@ -492,6 +495,8 @@
|
|||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<FileArmAds>
|
||||
|
@ -519,6 +524,12 @@
|
|||
<v6Lto>2</v6Lto>
|
||||
<v6WtE>2</v6WtE>
|
||||
<v6Rtti>2</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
</FileArmAds>
|
||||
</FileOption>
|
||||
|
@ -625,6 +636,21 @@
|
|||
</File>
|
||||
</Files>
|
||||
</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>User/hart</GroupName>
|
||||
<Files>
|
||||
|
@ -790,24 +816,6 @@
|
|||
</File>
|
||||
</Files>
|
||||
</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>
|
||||
<GroupName>Middlewares/Library/DSP Library/DSP Library</GroupName>
|
||||
<GroupOption>
|
||||
|
@ -823,6 +831,8 @@
|
|||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<GroupArmAds>
|
||||
|
@ -850,6 +860,12 @@
|
|||
<v6Lto>2</v6Lto>
|
||||
<v6WtE>2</v6WtE>
|
||||
<v6Rtti>2</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
<interw>2</interw>
|
||||
|
@ -862,67 +878,16 @@
|
|||
<uSurpInc>2</uSurpInc>
|
||||
<useXO>2</useXO>
|
||||
<ClangAsOpt>1</ClangAsOpt>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
</GroupArmAds>
|
||||
</GroupOption>
|
||||
<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>
|
||||
<FileName>arm_cortexM4l_math.lib</FileName>
|
||||
<FileType>4</FileType>
|
||||
|
@ -940,51 +905,18 @@
|
|||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<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>
|
||||
<FileArmAds/>
|
||||
</FileOption>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>::CMSIS</GroupName>
|
||||
</Group>
|
||||
</Groups>
|
||||
</Target>
|
||||
<Target>
|
||||
|
@ -1000,28 +932,28 @@
|
|||
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||
<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>
|
||||
<FlashUtilSpec />
|
||||
<StartupFile />
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile></StartupFile>
|
||||
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
||||
<DeviceId>0</DeviceId>
|
||||
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
||||
<MemoryEnv />
|
||||
<Cmp />
|
||||
<Asm />
|
||||
<Linker />
|
||||
<OHString />
|
||||
<InfinionOptionDll />
|
||||
<SLE66CMisc />
|
||||
<SLE66AMisc />
|
||||
<SLE66LinkerMisc />
|
||||
<MemoryEnv></MemoryEnv>
|
||||
<Cmp></Cmp>
|
||||
<Asm></Asm>
|
||||
<Linker></Linker>
|
||||
<OHString></OHString>
|
||||
<InfinionOptionDll></InfinionOptionDll>
|
||||
<SLE66CMisc></SLE66CMisc>
|
||||
<SLE66AMisc></SLE66AMisc>
|
||||
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
||||
<bCustSvd>0</bCustSvd>
|
||||
<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>
|
||||
<LibPath />
|
||||
<RegisterFilePath />
|
||||
<DBRegisterFilePath />
|
||||
<LibPath></LibPath>
|
||||
<RegisterFilePath></RegisterFilePath>
|
||||
<DBRegisterFilePath></DBRegisterFilePath>
|
||||
<TargetStatus>
|
||||
<Error>0</Error>
|
||||
<ExitCodeStop>0</ExitCodeStop>
|
||||
|
@ -1036,15 +968,15 @@
|
|||
<CreateHexFile>1</CreateHexFile>
|
||||
<DebugInformation>1</DebugInformation>
|
||||
<BrowseInformation>0</BrowseInformation>
|
||||
<ListingPath />
|
||||
<ListingPath></ListingPath>
|
||||
<HexFormatSelection>1</HexFormatSelection>
|
||||
<Merge32K>0</Merge32K>
|
||||
<CreateBatchFile>0</CreateBatchFile>
|
||||
<BeforeCompile>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name />
|
||||
<UserProg2Name />
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopU1X>0</nStopU1X>
|
||||
|
@ -1053,8 +985,8 @@
|
|||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name />
|
||||
<UserProg2Name />
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopB1X>0</nStopB1X>
|
||||
|
@ -1071,7 +1003,7 @@
|
|||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString />
|
||||
<SVCSIdString></SVCSIdString>
|
||||
</TargetCommonOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>0</UseCPPCompiler>
|
||||
|
@ -1085,8 +1017,8 @@
|
|||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||
<PublicsOnly>0</PublicsOnly>
|
||||
<StopOnExitCode>3</StopOnExitCode>
|
||||
<CustomArgument />
|
||||
<IncludeLibraryModules />
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>0</ComprImg>
|
||||
</CommonProperty>
|
||||
<DllOption>
|
||||
|
@ -1120,10 +1052,10 @@
|
|||
<bUseTDR>1</bUseTDR>
|
||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||
<Flash3>"" ()</Flash3>
|
||||
<Flash4 />
|
||||
<pFcarmOut />
|
||||
<pFcarmGrp />
|
||||
<pFcArmRoot />
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
<pFcarmGrp></pFcarmGrp>
|
||||
<pFcArmRoot></pFcArmRoot>
|
||||
<FcArmLst>0</FcArmLst>
|
||||
</Utilities>
|
||||
<TargetArmAds>
|
||||
|
@ -1156,7 +1088,7 @@
|
|||
<RvctClst>0</RvctClst>
|
||||
<GenPPlst>0</GenPPlst>
|
||||
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
||||
<RvctDeviceName />
|
||||
<RvctDeviceName></RvctDeviceName>
|
||||
<mOS>0</mOS>
|
||||
<uocRom>0</uocRom>
|
||||
<uocRam>0</uocRam>
|
||||
|
@ -1290,7 +1222,7 @@
|
|||
<Size>0x8000</Size>
|
||||
</OCR_RVCT10>
|
||||
</OnChipMemories>
|
||||
<RvctStartVector />
|
||||
<RvctStartVector></RvctStartVector>
|
||||
</ArmAdsMisc>
|
||||
<Cads>
|
||||
<interw>1</interw>
|
||||
|
@ -1319,7 +1251,7 @@
|
|||
<VariousControls>
|
||||
<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>
|
||||
<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>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
|
@ -1335,10 +1267,10 @@
|
|||
<useXO>0</useXO>
|
||||
<ClangAsOpt>4</ClangAsOpt>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
<LDads>
|
||||
|
@ -1348,15 +1280,15 @@
|
|||
<noStLib>0</noStLib>
|
||||
<RepFail>1</RepFail>
|
||||
<useFile>0</useFile>
|
||||
<TextAddressRange />
|
||||
<DataAddressRange />
|
||||
<pXoBase />
|
||||
<TextAddressRange></TextAddressRange>
|
||||
<DataAddressRange></DataAddressRange>
|
||||
<pXoBase></pXoBase>
|
||||
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
||||
<IncludeLibs />
|
||||
<IncludeLibsPath />
|
||||
<Misc />
|
||||
<LinkerInputFile />
|
||||
<DisabledWarnings />
|
||||
<IncludeLibs></IncludeLibs>
|
||||
<IncludeLibsPath></IncludeLibsPath>
|
||||
<Misc></Misc>
|
||||
<LinkerInputFile></LinkerInputFile>
|
||||
<DisabledWarnings></DisabledWarnings>
|
||||
</LDads>
|
||||
</TargetArmAds>
|
||||
</TargetOption>
|
||||
|
@ -1476,8 +1408,8 @@
|
|||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument />
|
||||
<IncludeLibraryModules />
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<FileArmAds>
|
||||
|
@ -1506,10 +1438,10 @@
|
|||
<v6WtE>2</v6WtE>
|
||||
<v6Rtti>2</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
</FileArmAds>
|
||||
|
@ -1617,6 +1549,21 @@
|
|||
</File>
|
||||
</Files>
|
||||
</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>User/hart</GroupName>
|
||||
<Files>
|
||||
|
@ -1783,17 +1730,12 @@
|
|||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>User/application/mode</GroupName>
|
||||
<GroupName>Middlewares/Library/DSP Library/DSP Library</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>
|
||||
<FileName>arm_cortexM4l_math.lib</FileName>
|
||||
<FileType>4</FileType>
|
||||
<FilePath>../Middlewares/ST/ARM/DSP/Lib/arm_cortexM4l_math.lib</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
@ -1812,8 +1754,8 @@
|
|||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument />
|
||||
<IncludeLibraryModules />
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<GroupArmAds>
|
||||
|
@ -1842,10 +1784,10 @@
|
|||
<v6WtE>2</v6WtE>
|
||||
<v6Rtti>2</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
|
@ -1860,10 +1802,10 @@
|
|||
<useXO>2</useXO>
|
||||
<ClangAsOpt>0</ClangAsOpt>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
</GroupArmAds>
|
||||
|
@ -1884,28 +1826,28 @@
|
|||
<PackID>Keil.STM32L4xx_DFP.2.6.2</PackID>
|
||||
<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>
|
||||
<FlashUtilSpec />
|
||||
<StartupFile />
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile></StartupFile>
|
||||
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32L4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32L476RGTx$CMSIS\Flash\STM32L4xx_1024.FLM))</FlashDriverDll>
|
||||
<DeviceId>0</DeviceId>
|
||||
<RegisterFile>$$Device:STM32L476RGTx$Drivers\CMSIS\Device\ST\STM32L4xx\Include\stm32l4xx.h</RegisterFile>
|
||||
<MemoryEnv />
|
||||
<Cmp />
|
||||
<Asm />
|
||||
<Linker />
|
||||
<OHString />
|
||||
<InfinionOptionDll />
|
||||
<SLE66CMisc />
|
||||
<SLE66AMisc />
|
||||
<SLE66LinkerMisc />
|
||||
<MemoryEnv></MemoryEnv>
|
||||
<Cmp></Cmp>
|
||||
<Asm></Asm>
|
||||
<Linker></Linker>
|
||||
<OHString></OHString>
|
||||
<InfinionOptionDll></InfinionOptionDll>
|
||||
<SLE66CMisc></SLE66CMisc>
|
||||
<SLE66AMisc></SLE66AMisc>
|
||||
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||
<SFDFile>$$Device:STM32L476RGTx$CMSIS\SVD\STM32L4x6.svd</SFDFile>
|
||||
<bCustSvd>0</bCustSvd>
|
||||
<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>
|
||||
<LibPath />
|
||||
<RegisterFilePath />
|
||||
<DBRegisterFilePath />
|
||||
<LibPath></LibPath>
|
||||
<RegisterFilePath></RegisterFilePath>
|
||||
<DBRegisterFilePath></DBRegisterFilePath>
|
||||
<TargetStatus>
|
||||
<Error>0</Error>
|
||||
<ExitCodeStop>0</ExitCodeStop>
|
||||
|
@ -1920,15 +1862,15 @@
|
|||
<CreateHexFile>1</CreateHexFile>
|
||||
<DebugInformation>1</DebugInformation>
|
||||
<BrowseInformation>1</BrowseInformation>
|
||||
<ListingPath />
|
||||
<ListingPath></ListingPath>
|
||||
<HexFormatSelection>1</HexFormatSelection>
|
||||
<Merge32K>0</Merge32K>
|
||||
<CreateBatchFile>0</CreateBatchFile>
|
||||
<BeforeCompile>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name />
|
||||
<UserProg2Name />
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopU1X>0</nStopU1X>
|
||||
|
@ -1937,8 +1879,8 @@
|
|||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name />
|
||||
<UserProg2Name />
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopB1X>0</nStopB1X>
|
||||
|
@ -1955,7 +1897,7 @@
|
|||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>1</SelectedForBatchBuild>
|
||||
<SVCSIdString />
|
||||
<SVCSIdString></SVCSIdString>
|
||||
</TargetCommonOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>0</UseCPPCompiler>
|
||||
|
@ -1969,8 +1911,8 @@
|
|||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||
<PublicsOnly>0</PublicsOnly>
|
||||
<StopOnExitCode>3</StopOnExitCode>
|
||||
<CustomArgument />
|
||||
<IncludeLibraryModules />
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>0</ComprImg>
|
||||
</CommonProperty>
|
||||
<DllOption>
|
||||
|
@ -2004,10 +1946,10 @@
|
|||
<bUseTDR>1</bUseTDR>
|
||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||
<Flash3>"" ()</Flash3>
|
||||
<Flash4 />
|
||||
<pFcarmOut />
|
||||
<pFcarmGrp />
|
||||
<pFcArmRoot />
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
<pFcarmGrp></pFcarmGrp>
|
||||
<pFcArmRoot></pFcArmRoot>
|
||||
<FcArmLst>0</FcArmLst>
|
||||
</Utilities>
|
||||
<TargetArmAds>
|
||||
|
@ -2040,7 +1982,7 @@
|
|||
<RvctClst>0</RvctClst>
|
||||
<GenPPlst>0</GenPPlst>
|
||||
<AdsCpuType>"Cortex-M4"</AdsCpuType>
|
||||
<RvctDeviceName />
|
||||
<RvctDeviceName></RvctDeviceName>
|
||||
<mOS>0</mOS>
|
||||
<uocRom>0</uocRom>
|
||||
<uocRam>0</uocRam>
|
||||
|
@ -2174,7 +2116,7 @@
|
|||
<Size>0x8000</Size>
|
||||
</OCR_RVCT10>
|
||||
</OnChipMemories>
|
||||
<RvctStartVector />
|
||||
<RvctStartVector></RvctStartVector>
|
||||
</ArmAdsMisc>
|
||||
<Cads>
|
||||
<interw>1</interw>
|
||||
|
@ -2203,7 +2145,7 @@
|
|||
<VariousControls>
|
||||
<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>
|
||||
<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>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
|
@ -2219,10 +2161,10 @@
|
|||
<useXO>0</useXO>
|
||||
<ClangAsOpt>4</ClangAsOpt>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
<LDads>
|
||||
|
@ -2232,15 +2174,15 @@
|
|||
<noStLib>0</noStLib>
|
||||
<RepFail>1</RepFail>
|
||||
<useFile>0</useFile>
|
||||
<TextAddressRange />
|
||||
<DataAddressRange />
|
||||
<pXoBase />
|
||||
<TextAddressRange></TextAddressRange>
|
||||
<DataAddressRange></DataAddressRange>
|
||||
<pXoBase></pXoBase>
|
||||
<ScatterFile>.\stm32l476xx.sct</ScatterFile>
|
||||
<IncludeLibs />
|
||||
<IncludeLibsPath />
|
||||
<Misc />
|
||||
<LinkerInputFile />
|
||||
<DisabledWarnings />
|
||||
<IncludeLibs></IncludeLibs>
|
||||
<IncludeLibsPath></IncludeLibsPath>
|
||||
<Misc></Misc>
|
||||
<LinkerInputFile></LinkerInputFile>
|
||||
<DisabledWarnings></DisabledWarnings>
|
||||
</LDads>
|
||||
</TargetArmAds>
|
||||
</TargetOption>
|
||||
|
@ -2360,8 +2302,8 @@
|
|||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument />
|
||||
<IncludeLibraryModules />
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<FileArmAds>
|
||||
|
@ -2390,10 +2332,10 @@
|
|||
<v6WtE>2</v6WtE>
|
||||
<v6Rtti>2</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
</FileArmAds>
|
||||
|
@ -2501,6 +2443,21 @@
|
|||
</File>
|
||||
</Files>
|
||||
</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>User/hart</GroupName>
|
||||
<Files>
|
||||
|
@ -2667,17 +2624,12 @@
|
|||
</Files>
|
||||
</Group>
|
||||
<Group>
|
||||
<GroupName>User/application/mode</GroupName>
|
||||
<GroupName>Middlewares/Library/DSP Library/DSP Library</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>
|
||||
<FileName>arm_cortexM4l_math.lib</FileName>
|
||||
<FileType>4</FileType>
|
||||
<FilePath>../Middlewares/ST/ARM/DSP/Lib/arm_cortexM4l_math.lib</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
@ -2696,8 +2648,8 @@
|
|||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
||||
<PublicsOnly>2</PublicsOnly>
|
||||
<StopOnExitCode>11</StopOnExitCode>
|
||||
<CustomArgument />
|
||||
<IncludeLibraryModules />
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
</CommonProperty>
|
||||
<GroupArmAds>
|
||||
|
@ -2726,10 +2678,10 @@
|
|||
<v6WtE>2</v6WtE>
|
||||
<v6Rtti>2</v6Rtti>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
|
@ -2744,10 +2696,10 @@
|
|||
<useXO>2</useXO>
|
||||
<ClangAsOpt>0</ClangAsOpt>
|
||||
<VariousControls>
|
||||
<MiscControls />
|
||||
<Define />
|
||||
<Undefine />
|
||||
<IncludePath />
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Aads>
|
||||
</GroupArmAds>
|
||||
|
@ -2756,19 +2708,21 @@
|
|||
</Groups>
|
||||
</Target>
|
||||
</Targets>
|
||||
|
||||
<RTE>
|
||||
<apis />
|
||||
<apis/>
|
||||
<components>
|
||||
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="5.1.1" condition="ARMv6_7_8-M Device">
|
||||
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.3.0" />
|
||||
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="5.3.0"/>
|
||||
<targetInfos>
|
||||
<targetInfo name="controller" />
|
||||
<targetInfo name="controller-stlink" />
|
||||
<targetInfo name="controller"/>
|
||||
<targetInfo name="controller-stlink"/>
|
||||
</targetInfos>
|
||||
</component>
|
||||
</components>
|
||||
<files />
|
||||
<files/>
|
||||
</RTE>
|
||||
|
||||
<LayerInfo>
|
||||
<Layers>
|
||||
<Layer>
|
||||
|
@ -2777,5 +2731,5 @@
|
|||
</Layer>
|
||||
</Layers>
|
||||
</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);
|
||||
system_clock_config_high(); // 切换高频
|
||||
// fal初始化
|
||||
{
|
||||
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_FM24, TRUE);
|
||||
}
|
||||
system_clock_config_low();
|
||||
leds_on(LEDS_GREEN);
|
||||
// 断电重启:优先启动控制模块 <=2000ms
|
||||
if (noinit_data.rest_flag == 0)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include "board.h"
|
||||
#include "./mode_pwmp_hd.h"
|
||||
#include "delay.h"
|
||||
#include "at_hc24.h"
|
||||
#include "at_bluetooth.h"
|
||||
#include "entity.h"
|
||||
#include "eeprom_m95.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;
|
||||
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)
|
||||
{
|
||||
|
@ -142,22 +142,36 @@ static void pwmp_control_update(filter_e type)
|
|||
}
|
||||
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 (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
|
||||
{
|
||||
p->ctrl_feedback = pid_actual;
|
||||
p->ctrl_feedback = rt_data.pid_actual;
|
||||
lpf_window_reset(mode_pwmp_hd->filter.handle);
|
||||
}
|
||||
#else
|
||||
p->ctrl_feedback = pid_actual;
|
||||
p->ctrl_feedback = rt_data.pid_actual;
|
||||
#endif
|
||||
p->real_error = p->ctrl_target - p->ctrl_feedback;
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
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->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)
|
||||
{
|
||||
return mode_pwmp_hd->pwmp_save->storage.kp * 8;
|
||||
// return mode_pwmp_hd->pwmp_save->storage.kp * 15;
|
||||
// return mode_pwmp_hd->pwmp_save->storage.kp * 6;
|
||||
return mode_pwmp_hd->pwmp_save->storage.kp * 15;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -192,7 +206,7 @@ static float32 get_pwmp_hd_control_ki(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;
|
||||
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;
|
||||
}
|
||||
|
@ -217,9 +231,9 @@ static void pwmp_public_params_update()
|
|||
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_max = mode_pwmp_hd->pwmp_save->storage.pwmp_max_origin;
|
||||
udevice.apid_kp = mode_pwmp_hd->pwmp_save->storage.kp;
|
||||
udevice.apid_ki = mode_pwmp_hd->pwmp_save->storage.ki;
|
||||
udevice.apid_kd = mode_pwmp_hd->pwmp_save->storage.kd;
|
||||
udevice.spid_kp = mode_pwmp_hd->pwmp_save->storage.kp;
|
||||
udevice.spid_ki = mode_pwmp_hd->pwmp_save->storage.ki;
|
||||
udevice.spid_kd = mode_pwmp_hd->pwmp_save->storage.kd;
|
||||
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:需要对进气和排气过程进行判定
|
||||
/*将10-20、20-30、30-40...等区间进行局部线性化,并将输入的目标变量进行映射处理*/
|
||||
static float32_t convert_target_to_controlvalue()
|
||||
{ // FIXME:将函数补足
|
||||
{
|
||||
uint16_t i = 0;
|
||||
float32 tmp = 0;
|
||||
float32 tmp = 0.0;
|
||||
static float32 control_value = 0; // 此变量要传回,故定义为static类型。
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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()
|
||||
{
|
||||
if (udevice.value_action_type == ATO)
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
if (mode_pwmp_hd->control.real_error < 0)
|
||||
{
|
||||
|
@ -283,7 +297,7 @@ static void inflate_or_deflate()
|
|||
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)
|
||||
{
|
||||
|
@ -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 算法方案初始化
|
||||
* @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());
|
||||
break;
|
||||
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;
|
||||
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 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;
|
||||
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);
|
||||
out = _pid.pid_u.hd.pid_position(&_pid.pid_u.hd, mode_pwmp_hd->control.real_error);
|
||||
out = out / 100;
|
||||
if (udevice.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
||||
if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_STRAIGHT)
|
||||
{
|
||||
#if 1
|
||||
/* 一阶段加权系数*/
|
||||
static float32 index_min_first = 0.2;
|
||||
static float32 index_max_first = 0.2;
|
||||
static float32 index_min_first = 0.5;
|
||||
static float32 index_max_first = 0.5;
|
||||
/*二阶段加权系数*/
|
||||
static float32 index_min_second = 0.1;
|
||||
static float32 index_max_second = 0.1;
|
||||
static float32 index_min_second = 0.2;
|
||||
static float32 index_max_second = 0.2;
|
||||
if (mode_pwmp_hd->process_state == PWMP_HD_PROCESS_ADJUST)
|
||||
{
|
||||
if (fabs(mode_pwmp_hd->control.real_error) >= 5.7)
|
||||
|
@ -435,7 +499,7 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
|||
}
|
||||
#endif
|
||||
}
|
||||
else if (udevice.value_travel_type == TRAVEL_TYPE_ANGULAR)
|
||||
else if (udevice.act_style.bits.value_travel_type == TRAVEL_TYPE_ANGULAR)
|
||||
{
|
||||
#if 0
|
||||
/* 一阶段加权系数*/
|
||||
|
@ -499,10 +563,128 @@ static execute_rsp_hd_t *execute_dac_plan1()
|
|||
/// </summary>
|
||||
/// <param name=""></param>
|
||||
/// <returns></returns>
|
||||
|
||||
/// TODO:完善新策略控制程序
|
||||
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>
|
||||
|
@ -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_0 = pid_autotune_hd->data.adjust_tmp_actual;
|
||||
// 记录0位置电流的大小
|
||||
if (udevice.value_action_type == ATO)
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
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;
|
||||
}
|
||||
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(); // 记录满信号全开起始时间
|
||||
}
|
||||
|
@ -946,7 +1128,7 @@ static void pwmp_adjust_hd_rough_position100(uint8_t *state, mode_pwmp_hd_adjust
|
|||
case POSITION_NO_CHANGE_FOREVER:
|
||||
// 位置不再改变,记录此时阀门位置AD值
|
||||
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->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值
|
||||
mode_pwmp_hd_adjust->arr_record_2 = mode_pwmp_hd_adjust->arr_current;
|
||||
// 记录在100阀位时的电流大小
|
||||
if (udevice.value_action_type == ATO)
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
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*/
|
||||
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
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
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();
|
||||
if (udevice.value_action_type == ATO)
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
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();
|
||||
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->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();
|
||||
if (udevice.value_action_type == ATO)
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
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();
|
||||
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->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;
|
||||
|
||||
/*判断调节阀类型(气开/气关),对最低行程和最高行程进行标定*/
|
||||
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_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) // 上大下小,正装
|
||||
{
|
||||
udevice.dev_install_dir = 1;
|
||||
udevice.invert_feedback = 1;
|
||||
}
|
||||
else // 充气,ADC减小,正装
|
||||
{
|
||||
udevice.dev_install_dir = 0;
|
||||
udevice.invert_feedback = 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)
|
||||
{
|
||||
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();
|
||||
}
|
||||
|
@ -1280,7 +1462,7 @@ static void pwmp_adjust_hd_bleeding(uint8_t *state)
|
|||
case POSITION_NO_CHANGE_FOREVER:
|
||||
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->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;
|
||||
if (!FSM_IS_WAIT(*state))
|
||||
{
|
||||
|
||||
mode_pwmp_hd_adjust->ctrl_target = 10;
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
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;
|
||||
FSM_WAIT(mode_pwmp_hd_adjust->adjust_state); // 等放气完毕就可以切入到else里面了
|
||||
*state = PWMP_HD_ADJUST_BLEEDING;
|
||||
}
|
||||
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);
|
||||
if (rt_data.loop_current >= 4.0)
|
||||
{
|
||||
if (mode_pwmp_hd_adjust->ctrl_target == 0)
|
||||
{
|
||||
pdctrl_out(mode_pwmp_hd->pwmp_save->storage.pwmp_min_origin * 0.8);
|
||||
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.5);
|
||||
}
|
||||
}
|
||||
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
|
||||
{
|
||||
|
@ -1515,24 +1719,47 @@ 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)
|
||||
{
|
||||
// 此处延时两秒钟
|
||||
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
|
||||
{
|
||||
mode_pwmp_hd_adjust->wait_count--;
|
||||
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||
// TODO:加上本次控制值与上次控制值差值的判断
|
||||
tmp = lpf_window_update(&mode_pwmp_hd->filter.handle, execute_res->dac);
|
||||
if (udevice.zero_power_condition == VALVE_OPEN)
|
||||
{
|
||||
if ((unsigned int)mode_pwmp_hd_adjust->ctrl_target < 100)
|
||||
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||
{
|
||||
mode_pwmp_hd_adjust->valvepos.valvepos_in[i] = execute_res->dac;
|
||||
i++;
|
||||
if ((unsigned int)mode_pwmp_hd_adjust->ctrl_target < 100)
|
||||
{
|
||||
mode_pwmp_hd_adjust->valvepos.valvepos_in[i_open] = tmp;
|
||||
i_open++;
|
||||
}
|
||||
else
|
||||
{
|
||||
*state = next_state;
|
||||
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 30;
|
||||
}
|
||||
mode_pwmp_hd_adjust->ctrl_target += 10;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mode_pwmp_hd_adjust->wait_count == 0)
|
||||
{
|
||||
*state = next_state;
|
||||
mode_pwmp_hd_adjust->wait_count = mode_pwmp_hd->wait_count_max * 30;
|
||||
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;
|
||||
}
|
||||
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
|
||||
{
|
||||
static unsigned int i = 0;
|
||||
/*将模式调整为控制模式*/
|
||||
float32 tmp = 0.0f;
|
||||
|
||||
pwmp_control_update(FILTER_MEDIAN);
|
||||
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)
|
||||
{
|
||||
// 此处延时三秒钟
|
||||
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
|
||||
{
|
||||
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 ((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++;
|
||||
}
|
||||
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)
|
||||
{
|
||||
*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++)
|
||||
{
|
||||
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++)
|
||||
{
|
||||
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_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();
|
||||
}
|
||||
|
||||
/*整定得到充气阶段的最大过冲量*/
|
||||
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*//////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////*整定程序入口BEGIN*//////////////////////////////////////////////////////
|
||||
|
@ -1668,10 +2024,16 @@ void pwmp_adjust(uint8_t *state)
|
|||
break;
|
||||
/*GPS2000中特有的整定流程,整定得到充排气过程中每百分之10稳定阀位的控制值,并将控制值每10%区间做线性处理*/
|
||||
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;
|
||||
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;
|
||||
case PWMP_HD_ADJUST_VALVEPOS_CALCULATE:
|
||||
pwmp_hd_adjust_valvepos_calculate(state, PWMP_HD_ADJUST_STOP);
|
||||
|
@ -1697,31 +2059,31 @@ void pwmp_adjust(uint8_t *state)
|
|||
switch (ts)
|
||||
{
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
case PWMP_HD_ADJUST_STOP:
|
||||
mode_pwmp_hd->lcd_adjust_state = LCD_ADJUST_STOP;
|
||||
|
@ -2022,13 +2384,13 @@ void mode_pwmp_hd_process(void)
|
|||
p->enter_count++;
|
||||
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];
|
||||
uint8_t ble_len = 0;
|
||||
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)
|
||||
{
|
||||
// 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 (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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
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));
|
||||
/*滤波初始化*/
|
||||
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->params_save_cb = params_save_cb;
|
||||
|
|
|
@ -2,15 +2,24 @@
|
|||
#define __MODE_PWMP_HD_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
|
||||
{
|
||||
ANGULAR_TRAVEL,
|
||||
LINEAR_TRAVEL,
|
||||
} mode_pwmp_hd_valve_type_e; // 阀门类型
|
||||
typedef enum
|
||||
{
|
||||
PWMP_HD_PROCESS_CONTROL,
|
||||
PWMP_HD_PROCESS_ADJUST,
|
||||
|
@ -19,28 +28,48 @@ typedef enum
|
|||
PWMP_HD_PROCESS_STOP,
|
||||
} mode_pwmp_hd_process_state_e; // 处理状态
|
||||
|
||||
typedef enum
|
||||
{
|
||||
INFLATE = 0,
|
||||
DEFLATE,
|
||||
} mode_pwmp_hd_action_e; // 运动状态(充气/排气)
|
||||
|
||||
/*需要存储的变量*/
|
||||
typedef struct
|
||||
{
|
||||
uint8_t tuned_flag; // 整定标志 0:未整定,1:整定中,2:整定成功,3:整定失败
|
||||
uint16_t startup_value; // 阀位启动值
|
||||
uint16_t arr_diff; // 控制区间
|
||||
uint16_t ad_diff; // 磁条区间
|
||||
uint16_t pwmp_min; // 控制最小值
|
||||
uint16_t pwmp_max; // 控制最大值
|
||||
uint16_t pwmp_min_origin; // 整定控制最小值
|
||||
uint16_t pwmp_max_origin; // 整定控制最大值
|
||||
uint16_t trip_0; // 磁条0位置AD
|
||||
uint16_t trip_100; // 词条100位置AD
|
||||
uint16_t trip_min0; // 小回路行程0位置AD
|
||||
uint16_t trip_min100; // 小回路行程100位置AD
|
||||
uint16_t current0; // 电流最小值
|
||||
uint16_t current100; // 电流最大值
|
||||
uint16_t all_open_time; // 全开时间
|
||||
uint16_t all_close_time; // 全关时间
|
||||
uint16_t all_open_time_full; // 最大信号全开时间
|
||||
uint16_t prov_flag; // 磁条安装的正反:倒装:0 正装:1
|
||||
uint16_t valve_type; // 阀门正反行程:气开:VALVE_CLOSE 气关:VALVE_OPEN
|
||||
/*充气过程:各百分之十阀位的控制信号值*/
|
||||
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:整定失败
|
||||
uint16_t startup_value; // 阀位启动值
|
||||
uint16_t arr_diff; // 控制区间
|
||||
uint16_t ad_diff; // 磁条区间
|
||||
uint16_t pwmp_min; // 控制最小值
|
||||
uint16_t pwmp_max; // 控制最大值
|
||||
uint16_t pwmp_min_origin; // 整定控制最小值
|
||||
uint16_t pwmp_max_origin; // 整定控制最大值
|
||||
uint16_t trip_0; // 磁条0位置AD
|
||||
uint16_t trip_100; // 词条100位置AD
|
||||
uint16_t trip_min0; // 小回路行程0位置AD
|
||||
uint16_t trip_min100; // 小回路行程100位置AD
|
||||
uint16_t current0; // 电流最小值
|
||||
uint16_t current100; // 电流最大值
|
||||
uint16_t all_open_time; // 全开时间
|
||||
uint16_t all_close_time; // 全关时间
|
||||
uint16_t all_open_time_full; // 最大信号全开时间
|
||||
uint16_t all_close_time_full; // 最大信号全关时间
|
||||
uint16_t prov_flag; // 磁条安装的正反:倒装:0 正装:1
|
||||
uint16_t valve_type; // 阀门正反行程:气开:ATO 气关:ATC
|
||||
float32 kp;
|
||||
float32 ki;
|
||||
float32 kd;
|
||||
|
@ -54,19 +83,36 @@ typedef struct
|
|||
float32 real_error; // 实际误差
|
||||
uint16_t 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;
|
||||
|
||||
/*滤波处理*/
|
||||
typedef struct
|
||||
{
|
||||
lpf_t actual_lpf;
|
||||
lpf_t target_lpf;
|
||||
lpf_window_t handle;
|
||||
uint16_t value;
|
||||
} 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
|
||||
{
|
||||
mode_pwmp_hd_pid_mode_e pid_mode; // PID控制模式
|
||||
mode_pwmp_hd_action_e action; // 运动状态(充气/排气)
|
||||
|
||||
uint8_t lcd_adjust_state; // LCD自整定流程状态
|
||||
float32 duty_percent; // 占空比
|
||||
float32 current_electric; // 电流
|
||||
|
@ -80,9 +126,11 @@ typedef struct
|
|||
uint16_t current_adc; // 当前位置反馈的AD值
|
||||
uint32_t count; // 计数
|
||||
|
||||
float32 valvepos_stable; // 10%-90%阀位之间的稳定控制值
|
||||
|
||||
mode_pwmp_hd_control_t control;
|
||||
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);
|
||||
} mode_pwmp_hd_t;
|
||||
|
||||
|
@ -145,6 +193,12 @@ typedef enum
|
|||
PWMP_HD_ADJUST_SAVE, // 存储变量
|
||||
PWMP_HD_ADJUST_BLEEDING, // 在整定状态中放气
|
||||
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_FAIL, // 整定失败
|
||||
PWMP_HD_ADJUST_TEST,
|
||||
|
@ -164,9 +218,27 @@ typedef enum
|
|||
PWMP_HD_ADJUST_RESULT_FAIL,
|
||||
} 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
|
||||
{
|
||||
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 psb_adc;
|
||||
|
@ -177,6 +249,7 @@ typedef struct
|
|||
BOOL adc_0_100_flag; // 判断0-100移动过程中ad值是增大还是减少,TRUE 增大,FALSE 减小
|
||||
BOOL flag_stable_begin;
|
||||
BOOL flag_stable_end;
|
||||
BOOL all_bleed_time_flag;
|
||||
|
||||
uint16_t adc_record_0; // 记录放气时阀门最小位置ad值
|
||||
uint16_t adc_record_1; // 记录放气时阀门最小位置ad值
|
||||
|
@ -189,11 +262,21 @@ typedef struct
|
|||
uint16_t arr_record_stable_begin; // 记录阀门稳定区域开始的ad值
|
||||
uint16_t arr_record_stable_end; // 记录阀门稳定区域结束的ad值
|
||||
|
||||
uint32_t all_open_time; // 全开时间
|
||||
uint32_t all_open_time_full; // 信号为最大输出时的全开时间
|
||||
uint32_t all_close_time; // 全关时间
|
||||
BOOL all_close_time_flag;
|
||||
uint32_t tmp_time; // 临时用来记录全开全关/整定时间
|
||||
uint32_t all_open_time; // 全开时间
|
||||
uint32_t all_open_time_full; // 信号为最大输出时的全开时间
|
||||
uint32_t all_close_time; // 全关时间
|
||||
uint32_t all_close_time_full; // 信号为最大输出时的全关时间
|
||||
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; // 默认计数器(推动计数值)
|
||||
|
@ -287,7 +370,7 @@ typedef struct
|
|||
} execute_rsp_hd_t;
|
||||
/////////////////////////////////////////*控制算法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_process(void);
|
||||
void pwmp_hd_process_state_set(mode_pwmp_hd_process_state_e state);
|
||||
|
|
Reference in New Issue