更新 PID公式纠错,误差范围缩小
This commit is contained in:
parent
59ad3069f6
commit
80658d6b92
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -27,6 +27,10 @@ Project File Date: 08/26/2024
|
||||||
<h2>Output:</h2>
|
<h2>Output:</h2>
|
||||||
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\Bin'
|
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\Bin'
|
||||||
Build target 'VOQC'
|
Build target 'VOQC'
|
||||||
|
compiling provalctrl.c...
|
||||||
|
linking...
|
||||||
|
Program Size: Code=33582 RO-data=458 RW-data=408 ZI-data=6704
|
||||||
|
FromELF: creating hex file...
|
||||||
"VOQC\VOQC.axf" - 0 Error(s), 0 Warning(s).
|
"VOQC\VOQC.axf" - 0 Error(s), 0 Warning(s).
|
||||||
|
|
||||||
<h2>Software Packages used:</h2>
|
<h2>Software Packages used:</h2>
|
||||||
|
@ -50,7 +54,7 @@ Package Vendor: Keil
|
||||||
<h2>Collection of Component Files used:</h2>
|
<h2>Collection of Component Files used:</h2>
|
||||||
|
|
||||||
* Component: ARM::CMSIS:CORE@5.6.0
|
* Component: ARM::CMSIS:CORE@5.6.0
|
||||||
Build Time Elapsed: 00:00:01
|
Build Time Elapsed: 00:00:05
|
||||||
</pre>
|
</pre>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,7 +3,7 @@
|
||||||
<title>Static Call Graph - [VOQC\VOQC.axf]</title></head>
|
<title>Static Call Graph - [VOQC\VOQC.axf]</title></head>
|
||||||
<body><HR>
|
<body><HR>
|
||||||
<H1>Static Call Graph for image VOQC\VOQC.axf</H1><HR>
|
<H1>Static Call Graph for image VOQC\VOQC.axf</H1><HR>
|
||||||
<BR><P>#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Aug 29 09:50:08 2024
|
<BR><P>#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Mon Sep 02 09:41:59 2024
|
||||||
<BR><P>
|
<BR><P>
|
||||||
<H3>Maximum Stack Usage = 452 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
|
<H3>Maximum Stack Usage = 452 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
|
||||||
Call chain for Maximum Stack Depth:</H3>
|
Call chain for Maximum Stack Depth:</H3>
|
||||||
|
@ -2179,7 +2179,7 @@ Global Symbols
|
||||||
<BR>[Called By]<UL><LI><a href="#[d6]">>></a> HAL_UART_RxCpltCallback
|
<BR>[Called By]<UL><LI><a href="#[d6]">>></a> HAL_UART_RxCpltCallback
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<P><STRONG><a name="[13d]"></a>prov_adj</STRONG> (Thumb, 1504 bytes, Stack size 16 bytes, provalctrl.o(i.prov_adj))
|
<P><STRONG><a name="[13d]"></a>prov_adj</STRONG> (Thumb, 1488 bytes, Stack size 16 bytes, provalctrl.o(i.prov_adj))
|
||||||
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = prov_adj ⇒ ee_writefloats ⇒ ee_writebytes ⇒ i2c_sendbyte
|
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = prov_adj ⇒ ee_writefloats ⇒ ee_writebytes ⇒ i2c_sendbyte
|
||||||
</UL>
|
</UL>
|
||||||
<BR>[Calls]<UL><LI><a href="#[12d]">>></a> prov_adj_init
|
<BR>[Calls]<UL><LI><a href="#[12d]">>></a> prov_adj_init
|
||||||
|
@ -2195,7 +2195,7 @@ Global Symbols
|
||||||
<LI><a href="#[13d]">>></a> prov_adj
|
<LI><a href="#[13d]">>></a> prov_adj
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<P><STRONG><a name="[13e]"></a>prov_calibrate_pid</STRONG> (Thumb, 780 bytes, Stack size 8 bytes, provalctrl.o(i.prov_calibrate_pid))
|
<P><STRONG><a name="[13e]"></a>prov_calibrate_pid</STRONG> (Thumb, 454 bytes, Stack size 8 bytes, provalctrl.o(i.prov_calibrate_pid))
|
||||||
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = prov_calibrate_pid
|
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = prov_calibrate_pid
|
||||||
</UL>
|
</UL>
|
||||||
<BR>[Calls]<UL><LI><a href="#[13f]">>></a> abs_bias
|
<BR>[Calls]<UL><LI><a href="#[13f]">>></a> abs_bias
|
||||||
|
@ -2221,7 +2221,7 @@ Global Symbols
|
||||||
<BR>[Called By]<UL><LI><a href="#[74]">>></a> main
|
<BR>[Called By]<UL><LI><a href="#[74]">>></a> main
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<P><STRONG><a name="[106]"></a>prov_set</STRONG> (Thumb, 400 bytes, Stack size 16 bytes, provalctrl.o(i.prov_set))
|
<P><STRONG><a name="[106]"></a>prov_set</STRONG> (Thumb, 244 bytes, Stack size 16 bytes, provalctrl.o(i.prov_set))
|
||||||
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = prov_set
|
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = prov_set
|
||||||
</UL>
|
</UL>
|
||||||
<BR>[Called By]<UL><LI><a href="#[104]">>></a> analog_ctrl
|
<BR>[Called By]<UL><LI><a href="#[104]">>></a> analog_ctrl
|
||||||
|
|
|
@ -1565,7 +1565,6 @@ Section Cross References
|
||||||
provalctrl.o(i.prov_adj) refers to modbus.o(.data) for CoilState
|
provalctrl.o(i.prov_adj) refers to modbus.o(.data) for CoilState
|
||||||
provalctrl.o(i.prov_adj_init) refers to provalctrl.o(.bss) for adj_pv1
|
provalctrl.o(i.prov_adj_init) refers to provalctrl.o(.bss) for adj_pv1
|
||||||
provalctrl.o(i.prov_calibrate_pid) refers to provalctrl.o(i.abs_bias) for abs_bias
|
provalctrl.o(i.prov_calibrate_pid) refers to provalctrl.o(i.abs_bias) for abs_bias
|
||||||
provalctrl.o(i.prov_calibrate_pid) refers to provalctrl.o(.data) for out_makeup
|
|
||||||
provalctrl.o(i.prov_ctrl) refers to provalctrl.o(i.prov_adj_init) for prov_adj_init
|
provalctrl.o(i.prov_ctrl) refers to provalctrl.o(i.prov_adj_init) for prov_adj_init
|
||||||
provalctrl.o(i.prov_ctrl) refers to provalctrl.o(i.prov_calibrate_pid) for prov_calibrate_pid
|
provalctrl.o(i.prov_ctrl) refers to provalctrl.o(i.prov_calibrate_pid) for prov_calibrate_pid
|
||||||
provalctrl.o(i.prov_ctrl) refers to provalctrl.o(i.prov_adj) for prov_adj
|
provalctrl.o(i.prov_ctrl) refers to provalctrl.o(i.prov_adj) for prov_adj
|
||||||
|
@ -3179,53 +3178,53 @@ Image Symbol Table
|
||||||
i.modbus_rtu_init 0x080062c8 Section 0 modbus_rtu.o(i.modbus_rtu_init)
|
i.modbus_rtu_init 0x080062c8 Section 0 modbus_rtu.o(i.modbus_rtu_init)
|
||||||
i.modbus_rx_cb 0x0800631c Section 0 modbus_rtu.o(i.modbus_rx_cb)
|
i.modbus_rx_cb 0x0800631c Section 0 modbus_rtu.o(i.modbus_rx_cb)
|
||||||
i.prov_adj 0x080063a0 Section 0 provalctrl.o(i.prov_adj)
|
i.prov_adj 0x080063a0 Section 0 provalctrl.o(i.prov_adj)
|
||||||
i.prov_adj_init 0x080069b8 Section 0 provalctrl.o(i.prov_adj_init)
|
i.prov_adj_init 0x080069a4 Section 0 provalctrl.o(i.prov_adj_init)
|
||||||
i.prov_calibrate_pid 0x08006a70 Section 0 provalctrl.o(i.prov_calibrate_pid)
|
i.prov_calibrate_pid 0x08006a5c Section 0 provalctrl.o(i.prov_calibrate_pid)
|
||||||
i.prov_ctrl 0x08006d88 Section 0 provalctrl.o(i.prov_ctrl)
|
i.prov_ctrl 0x08006c28 Section 0 provalctrl.o(i.prov_ctrl)
|
||||||
i.prov_init 0x08006df4 Section 0 provalctrl.o(i.prov_init)
|
i.prov_init 0x08006c94 Section 0 provalctrl.o(i.prov_init)
|
||||||
i.prov_set 0x08007068 Section 0 provalctrl.o(i.prov_set)
|
i.prov_set 0x08006f0c Section 0 provalctrl.o(i.prov_set)
|
||||||
i.readcoilstate_rtu 0x08007204 Section 0 modbus_rtu.o(i.readcoilstate_rtu)
|
i.readcoilstate_rtu 0x0800700c Section 0 modbus_rtu.o(i.readcoilstate_rtu)
|
||||||
i.readdisinputstate_rtu 0x08007354 Section 0 modbus_rtu.o(i.readdisinputstate_rtu)
|
i.readdisinputstate_rtu 0x0800715c Section 0 modbus_rtu.o(i.readdisinputstate_rtu)
|
||||||
i.readholdreg_rtu 0x080074a0 Section 0 modbus_rtu.o(i.readholdreg_rtu)
|
i.readholdreg_rtu 0x080072a8 Section 0 modbus_rtu.o(i.readholdreg_rtu)
|
||||||
i.readinputreg_rtu 0x080075ac Section 0 modbus_rtu.o(i.readinputreg_rtu)
|
i.readinputreg_rtu 0x080073b4 Section 0 modbus_rtu.o(i.readinputreg_rtu)
|
||||||
i.setcs 0x080076b0 Section 0 ms5803.o(i.setcs)
|
i.setcs 0x080074b8 Section 0 ms5803.o(i.setcs)
|
||||||
i.tim6_cnt 0x08007718 Section 0 timer.o(i.tim6_cnt)
|
i.tim6_cnt 0x08007520 Section 0 timer.o(i.tim6_cnt)
|
||||||
i.uart_send 0x08007924 Section 0 uarts.o(i.uart_send)
|
i.uart_send 0x0800772c Section 0 uarts.o(i.uart_send)
|
||||||
i.wf5803_ReadReg 0x08007938 Section 0 mf5803.o(i.wf5803_ReadReg)
|
i.wf5803_ReadReg 0x08007740 Section 0 mf5803.o(i.wf5803_ReadReg)
|
||||||
i.wf5803_WriteReg 0x0800795a Section 0 mf5803.o(i.wf5803_WriteReg)
|
i.wf5803_WriteReg 0x08007762 Section 0 mf5803.o(i.wf5803_WriteReg)
|
||||||
i.writemulticoil_rtu 0x0800797c Section 0 modbus_rtu.o(i.writemulticoil_rtu)
|
i.writemulticoil_rtu 0x08007784 Section 0 modbus_rtu.o(i.writemulticoil_rtu)
|
||||||
i.writemultireg_rtu 0x08007ac8 Section 0 modbus_rtu.o(i.writemultireg_rtu)
|
i.writemultireg_rtu 0x080078d0 Section 0 modbus_rtu.o(i.writemultireg_rtu)
|
||||||
i.writesinglecoil_rtu 0x08007bcc Section 0 modbus_rtu.o(i.writesinglecoil_rtu)
|
i.writesinglecoil_rtu 0x080079d4 Section 0 modbus_rtu.o(i.writesinglecoil_rtu)
|
||||||
i.writesinglereg_rtu 0x08007c90 Section 0 modbus_rtu.o(i.writesinglereg_rtu)
|
i.writesinglereg_rtu 0x08007a98 Section 0 modbus_rtu.o(i.writesinglereg_rtu)
|
||||||
x$fpl$dadd 0x08007d48 Section 336 daddsub_clz.o(x$fpl$dadd)
|
x$fpl$dadd 0x08007b50 Section 336 daddsub_clz.o(x$fpl$dadd)
|
||||||
$v0 0x08007d48 Number 0 daddsub_clz.o(x$fpl$dadd)
|
$v0 0x08007b50 Number 0 daddsub_clz.o(x$fpl$dadd)
|
||||||
_dadd1 0x08007d59 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
|
_dadd1 0x08007b61 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
|
||||||
x$fpl$ddiv 0x08007e98 Section 688 ddiv.o(x$fpl$ddiv)
|
x$fpl$ddiv 0x08007ca0 Section 688 ddiv.o(x$fpl$ddiv)
|
||||||
$v0 0x08007e98 Number 0 ddiv.o(x$fpl$ddiv)
|
$v0 0x08007ca0 Number 0 ddiv.o(x$fpl$ddiv)
|
||||||
ddiv_entry 0x08007e9f Thumb Code 0 ddiv.o(x$fpl$ddiv)
|
ddiv_entry 0x08007ca7 Thumb Code 0 ddiv.o(x$fpl$ddiv)
|
||||||
x$fpl$dfix 0x08008148 Section 94 dfix.o(x$fpl$dfix)
|
x$fpl$dfix 0x08007f50 Section 94 dfix.o(x$fpl$dfix)
|
||||||
$v0 0x08008148 Number 0 dfix.o(x$fpl$dfix)
|
$v0 0x08007f50 Number 0 dfix.o(x$fpl$dfix)
|
||||||
x$fpl$dfixu 0x080081a8 Section 90 dfixu.o(x$fpl$dfixu)
|
x$fpl$dfixu 0x08007fb0 Section 90 dfixu.o(x$fpl$dfixu)
|
||||||
$v0 0x080081a8 Number 0 dfixu.o(x$fpl$dfixu)
|
$v0 0x08007fb0 Number 0 dfixu.o(x$fpl$dfixu)
|
||||||
x$fpl$dflt 0x08008202 Section 46 dflt_clz.o(x$fpl$dflt)
|
x$fpl$dflt 0x0800800a Section 46 dflt_clz.o(x$fpl$dflt)
|
||||||
$v0 0x08008202 Number 0 dflt_clz.o(x$fpl$dflt)
|
$v0 0x0800800a Number 0 dflt_clz.o(x$fpl$dflt)
|
||||||
x$fpl$dfltll 0x08008230 Section 162 dfltll_clz.o(x$fpl$dfltll)
|
x$fpl$dfltll 0x08008038 Section 162 dfltll_clz.o(x$fpl$dfltll)
|
||||||
$v0 0x08008230 Number 0 dfltll_clz.o(x$fpl$dfltll)
|
$v0 0x08008038 Number 0 dfltll_clz.o(x$fpl$dfltll)
|
||||||
x$fpl$dmul 0x080082d4 Section 340 dmul.o(x$fpl$dmul)
|
x$fpl$dmul 0x080080dc Section 340 dmul.o(x$fpl$dmul)
|
||||||
$v0 0x080082d4 Number 0 dmul.o(x$fpl$dmul)
|
$v0 0x080080dc Number 0 dmul.o(x$fpl$dmul)
|
||||||
x$fpl$dnaninf 0x08008428 Section 156 dnaninf.o(x$fpl$dnaninf)
|
x$fpl$dnaninf 0x08008230 Section 156 dnaninf.o(x$fpl$dnaninf)
|
||||||
$v0 0x08008428 Number 0 dnaninf.o(x$fpl$dnaninf)
|
$v0 0x08008230 Number 0 dnaninf.o(x$fpl$dnaninf)
|
||||||
x$fpl$dretinf 0x080084c4 Section 12 dretinf.o(x$fpl$dretinf)
|
x$fpl$dretinf 0x080082cc Section 12 dretinf.o(x$fpl$dretinf)
|
||||||
$v0 0x080084c4 Number 0 dretinf.o(x$fpl$dretinf)
|
$v0 0x080082cc Number 0 dretinf.o(x$fpl$dretinf)
|
||||||
x$fpl$dsub 0x080084d0 Section 468 daddsub_clz.o(x$fpl$dsub)
|
x$fpl$dsub 0x080082d8 Section 468 daddsub_clz.o(x$fpl$dsub)
|
||||||
$v0 0x080084d0 Number 0 daddsub_clz.o(x$fpl$dsub)
|
$v0 0x080082d8 Number 0 daddsub_clz.o(x$fpl$dsub)
|
||||||
_dsub1 0x080084e1 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
|
_dsub1 0x080082e9 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
|
||||||
x$fpl$fpinit 0x080086a4 Section 10 fpinit.o(x$fpl$fpinit)
|
x$fpl$fpinit 0x080084ac Section 10 fpinit.o(x$fpl$fpinit)
|
||||||
$v0 0x080086a4 Number 0 fpinit.o(x$fpl$fpinit)
|
$v0 0x080084ac Number 0 fpinit.o(x$fpl$fpinit)
|
||||||
.constdata 0x080086ae Section 8 stm32f4xx_hal_dma.o(.constdata)
|
.constdata 0x080084b6 Section 8 stm32f4xx_hal_dma.o(.constdata)
|
||||||
x$fpl$usenofp 0x080086ae Section 0 usenofp.o(x$fpl$usenofp)
|
x$fpl$usenofp 0x080084b6 Section 0 usenofp.o(x$fpl$usenofp)
|
||||||
flagBitshiftOffset 0x080086ae Data 8 stm32f4xx_hal_dma.o(.constdata)
|
flagBitshiftOffset 0x080084b6 Data 8 stm32f4xx_hal_dma.o(.constdata)
|
||||||
.constdata 0x080086b6 Section 24 system_stm32f4xx.o(.constdata)
|
.constdata 0x080084be Section 24 system_stm32f4xx.o(.constdata)
|
||||||
.data 0x20000000 Section 9 stm32f4xx_hal.o(.data)
|
.data 0x20000000 Section 9 stm32f4xx_hal.o(.data)
|
||||||
.data 0x2000000c Section 4 system_stm32f4xx.o(.data)
|
.data 0x2000000c Section 4 system_stm32f4xx.o(.data)
|
||||||
.data 0x20000010 Section 24 ads1256.o(.data)
|
.data 0x20000010 Section 24 ads1256.o(.data)
|
||||||
|
@ -3633,51 +3632,51 @@ Image Symbol Table
|
||||||
modbus_process_rtu 0x08006285 Thumb Code 64 modbus_rtu.o(i.modbus_process_rtu)
|
modbus_process_rtu 0x08006285 Thumb Code 64 modbus_rtu.o(i.modbus_process_rtu)
|
||||||
modbus_rtu_init 0x080062c9 Thumb Code 58 modbus_rtu.o(i.modbus_rtu_init)
|
modbus_rtu_init 0x080062c9 Thumb Code 58 modbus_rtu.o(i.modbus_rtu_init)
|
||||||
modbus_rx_cb 0x0800631d Thumb Code 98 modbus_rtu.o(i.modbus_rx_cb)
|
modbus_rx_cb 0x0800631d Thumb Code 98 modbus_rtu.o(i.modbus_rx_cb)
|
||||||
prov_adj 0x080063a1 Thumb Code 1504 provalctrl.o(i.prov_adj)
|
prov_adj 0x080063a1 Thumb Code 1488 provalctrl.o(i.prov_adj)
|
||||||
prov_adj_init 0x080069b9 Thumb Code 168 provalctrl.o(i.prov_adj_init)
|
prov_adj_init 0x080069a5 Thumb Code 168 provalctrl.o(i.prov_adj_init)
|
||||||
prov_calibrate_pid 0x08006a71 Thumb Code 780 provalctrl.o(i.prov_calibrate_pid)
|
prov_calibrate_pid 0x08006a5d Thumb Code 454 provalctrl.o(i.prov_calibrate_pid)
|
||||||
prov_ctrl 0x08006d89 Thumb Code 102 provalctrl.o(i.prov_ctrl)
|
prov_ctrl 0x08006c29 Thumb Code 102 provalctrl.o(i.prov_ctrl)
|
||||||
prov_init 0x08006df5 Thumb Code 588 provalctrl.o(i.prov_init)
|
prov_init 0x08006c95 Thumb Code 588 provalctrl.o(i.prov_init)
|
||||||
prov_set 0x08007069 Thumb Code 400 provalctrl.o(i.prov_set)
|
prov_set 0x08006f0d Thumb Code 244 provalctrl.o(i.prov_set)
|
||||||
readcoilstate_rtu 0x08007205 Thumb Code 326 modbus_rtu.o(i.readcoilstate_rtu)
|
readcoilstate_rtu 0x0800700d Thumb Code 326 modbus_rtu.o(i.readcoilstate_rtu)
|
||||||
readdisinputstate_rtu 0x08007355 Thumb Code 322 modbus_rtu.o(i.readdisinputstate_rtu)
|
readdisinputstate_rtu 0x0800715d Thumb Code 322 modbus_rtu.o(i.readdisinputstate_rtu)
|
||||||
readholdreg_rtu 0x080074a1 Thumb Code 258 modbus_rtu.o(i.readholdreg_rtu)
|
readholdreg_rtu 0x080072a9 Thumb Code 258 modbus_rtu.o(i.readholdreg_rtu)
|
||||||
readinputreg_rtu 0x080075ad Thumb Code 252 modbus_rtu.o(i.readinputreg_rtu)
|
readinputreg_rtu 0x080073b5 Thumb Code 252 modbus_rtu.o(i.readinputreg_rtu)
|
||||||
setcs 0x080076b1 Thumb Code 86 ms5803.o(i.setcs)
|
setcs 0x080074b9 Thumb Code 86 ms5803.o(i.setcs)
|
||||||
tim6_cnt 0x08007719 Thumb Code 420 timer.o(i.tim6_cnt)
|
tim6_cnt 0x08007521 Thumb Code 420 timer.o(i.tim6_cnt)
|
||||||
uart_send 0x08007925 Thumb Code 20 uarts.o(i.uart_send)
|
uart_send 0x0800772d Thumb Code 20 uarts.o(i.uart_send)
|
||||||
wf5803_ReadReg 0x08007939 Thumb Code 34 mf5803.o(i.wf5803_ReadReg)
|
wf5803_ReadReg 0x08007741 Thumb Code 34 mf5803.o(i.wf5803_ReadReg)
|
||||||
wf5803_WriteReg 0x0800795b Thumb Code 34 mf5803.o(i.wf5803_WriteReg)
|
wf5803_WriteReg 0x08007763 Thumb Code 34 mf5803.o(i.wf5803_WriteReg)
|
||||||
writemulticoil_rtu 0x0800797d Thumb Code 322 modbus_rtu.o(i.writemulticoil_rtu)
|
writemulticoil_rtu 0x08007785 Thumb Code 322 modbus_rtu.o(i.writemulticoil_rtu)
|
||||||
writemultireg_rtu 0x08007ac9 Thumb Code 252 modbus_rtu.o(i.writemultireg_rtu)
|
writemultireg_rtu 0x080078d1 Thumb Code 252 modbus_rtu.o(i.writemultireg_rtu)
|
||||||
writesinglecoil_rtu 0x08007bcd Thumb Code 188 modbus_rtu.o(i.writesinglecoil_rtu)
|
writesinglecoil_rtu 0x080079d5 Thumb Code 188 modbus_rtu.o(i.writesinglecoil_rtu)
|
||||||
writesinglereg_rtu 0x08007c91 Thumb Code 176 modbus_rtu.o(i.writesinglereg_rtu)
|
writesinglereg_rtu 0x08007a99 Thumb Code 176 modbus_rtu.o(i.writesinglereg_rtu)
|
||||||
__aeabi_dadd 0x08007d49 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
|
__aeabi_dadd 0x08007b51 Thumb Code 0 daddsub_clz.o(x$fpl$dadd)
|
||||||
_dadd 0x08007d49 Thumb Code 332 daddsub_clz.o(x$fpl$dadd)
|
_dadd 0x08007b51 Thumb Code 332 daddsub_clz.o(x$fpl$dadd)
|
||||||
__aeabi_ddiv 0x08007e99 Thumb Code 0 ddiv.o(x$fpl$ddiv)
|
__aeabi_ddiv 0x08007ca1 Thumb Code 0 ddiv.o(x$fpl$ddiv)
|
||||||
_ddiv 0x08007e99 Thumb Code 552 ddiv.o(x$fpl$ddiv)
|
_ddiv 0x08007ca1 Thumb Code 552 ddiv.o(x$fpl$ddiv)
|
||||||
__aeabi_d2iz 0x08008149 Thumb Code 0 dfix.o(x$fpl$dfix)
|
__aeabi_d2iz 0x08007f51 Thumb Code 0 dfix.o(x$fpl$dfix)
|
||||||
_dfix 0x08008149 Thumb Code 94 dfix.o(x$fpl$dfix)
|
_dfix 0x08007f51 Thumb Code 94 dfix.o(x$fpl$dfix)
|
||||||
__aeabi_d2uiz 0x080081a9 Thumb Code 0 dfixu.o(x$fpl$dfixu)
|
__aeabi_d2uiz 0x08007fb1 Thumb Code 0 dfixu.o(x$fpl$dfixu)
|
||||||
_dfixu 0x080081a9 Thumb Code 90 dfixu.o(x$fpl$dfixu)
|
_dfixu 0x08007fb1 Thumb Code 90 dfixu.o(x$fpl$dfixu)
|
||||||
__aeabi_i2d 0x08008203 Thumb Code 0 dflt_clz.o(x$fpl$dflt)
|
__aeabi_i2d 0x0800800b Thumb Code 0 dflt_clz.o(x$fpl$dflt)
|
||||||
_dflt 0x08008203 Thumb Code 46 dflt_clz.o(x$fpl$dflt)
|
_dflt 0x0800800b Thumb Code 46 dflt_clz.o(x$fpl$dflt)
|
||||||
__aeabi_l2d 0x08008231 Thumb Code 0 dfltll_clz.o(x$fpl$dfltll)
|
__aeabi_l2d 0x08008039 Thumb Code 0 dfltll_clz.o(x$fpl$dfltll)
|
||||||
_ll_sto_d 0x08008231 Thumb Code 162 dfltll_clz.o(x$fpl$dfltll)
|
_ll_sto_d 0x08008039 Thumb Code 162 dfltll_clz.o(x$fpl$dfltll)
|
||||||
__aeabi_dmul 0x080082d5 Thumb Code 0 dmul.o(x$fpl$dmul)
|
__aeabi_dmul 0x080080dd Thumb Code 0 dmul.o(x$fpl$dmul)
|
||||||
_dmul 0x080082d5 Thumb Code 332 dmul.o(x$fpl$dmul)
|
_dmul 0x080080dd Thumb Code 332 dmul.o(x$fpl$dmul)
|
||||||
__fpl_dnaninf 0x08008429 Thumb Code 156 dnaninf.o(x$fpl$dnaninf)
|
__fpl_dnaninf 0x08008231 Thumb Code 156 dnaninf.o(x$fpl$dnaninf)
|
||||||
__fpl_dretinf 0x080084c5 Thumb Code 12 dretinf.o(x$fpl$dretinf)
|
__fpl_dretinf 0x080082cd Thumb Code 12 dretinf.o(x$fpl$dretinf)
|
||||||
__aeabi_dsub 0x080084d1 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
|
__aeabi_dsub 0x080082d9 Thumb Code 0 daddsub_clz.o(x$fpl$dsub)
|
||||||
_dsub 0x080084d1 Thumb Code 464 daddsub_clz.o(x$fpl$dsub)
|
_dsub 0x080082d9 Thumb Code 464 daddsub_clz.o(x$fpl$dsub)
|
||||||
_fp_init 0x080086a5 Thumb Code 10 fpinit.o(x$fpl$fpinit)
|
_fp_init 0x080084ad Thumb Code 10 fpinit.o(x$fpl$fpinit)
|
||||||
__fplib_config_fpu_vfp 0x080086ad Thumb Code 0 fpinit.o(x$fpl$fpinit)
|
__fplib_config_fpu_vfp 0x080084b5 Thumb Code 0 fpinit.o(x$fpl$fpinit)
|
||||||
__fplib_config_pureend_doubles 0x080086ad Thumb Code 0 fpinit.o(x$fpl$fpinit)
|
__fplib_config_pureend_doubles 0x080084b5 Thumb Code 0 fpinit.o(x$fpl$fpinit)
|
||||||
__I$use$fp 0x080086ae Number 0 usenofp.o(x$fpl$usenofp)
|
__I$use$fp 0x080084b6 Number 0 usenofp.o(x$fpl$usenofp)
|
||||||
AHBPrescTable 0x080086b6 Data 16 system_stm32f4xx.o(.constdata)
|
AHBPrescTable 0x080084be Data 16 system_stm32f4xx.o(.constdata)
|
||||||
APBPrescTable 0x080086c6 Data 8 system_stm32f4xx.o(.constdata)
|
APBPrescTable 0x080084ce Data 8 system_stm32f4xx.o(.constdata)
|
||||||
Region$$Table$$Base 0x080086d0 Number 0 anon$$obj.o(Region$$Table)
|
Region$$Table$$Base 0x080084d8 Number 0 anon$$obj.o(Region$$Table)
|
||||||
Region$$Table$$Limit 0x080086f0 Number 0 anon$$obj.o(Region$$Table)
|
Region$$Table$$Limit 0x080084f8 Number 0 anon$$obj.o(Region$$Table)
|
||||||
uwTick 0x20000000 Data 4 stm32f4xx_hal.o(.data)
|
uwTick 0x20000000 Data 4 stm32f4xx_hal.o(.data)
|
||||||
uwTickPrio 0x20000004 Data 4 stm32f4xx_hal.o(.data)
|
uwTickPrio 0x20000004 Data 4 stm32f4xx_hal.o(.data)
|
||||||
uwTickFreq 0x20000008 Data 1 stm32f4xx_hal.o(.data)
|
uwTickFreq 0x20000008 Data 1 stm32f4xx_hal.o(.data)
|
||||||
|
@ -3800,9 +3799,9 @@ Memory Map of the image
|
||||||
|
|
||||||
Image Entry point : 0x08000189
|
Image Entry point : 0x08000189
|
||||||
|
|
||||||
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00008888, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x00008710])
|
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00008690, Max: 0x00100000, ABSOLUTE, COMPRESSED[0x00008518])
|
||||||
|
|
||||||
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000086f0, Max: 0x00100000, ABSOLUTE)
|
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000084f8, Max: 0x00100000, ABSOLUTE)
|
||||||
|
|
||||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||||
|
|
||||||
|
@ -4085,46 +4084,46 @@ Memory Map of the image
|
||||||
0x08006284 0x08006284 0x00000044 Code RO 5110 i.modbus_process_rtu modbus_rtu.o
|
0x08006284 0x08006284 0x00000044 Code RO 5110 i.modbus_process_rtu modbus_rtu.o
|
||||||
0x080062c8 0x080062c8 0x00000054 Code RO 5111 i.modbus_rtu_init modbus_rtu.o
|
0x080062c8 0x080062c8 0x00000054 Code RO 5111 i.modbus_rtu_init modbus_rtu.o
|
||||||
0x0800631c 0x0800631c 0x00000084 Code RO 5112 i.modbus_rx_cb modbus_rtu.o
|
0x0800631c 0x0800631c 0x00000084 Code RO 5112 i.modbus_rx_cb modbus_rtu.o
|
||||||
0x080063a0 0x080063a0 0x00000618 Code RO 5963 i.prov_adj provalctrl.o
|
0x080063a0 0x080063a0 0x00000604 Code RO 5963 i.prov_adj provalctrl.o
|
||||||
0x080069b8 0x080069b8 0x000000b8 Code RO 5964 i.prov_adj_init provalctrl.o
|
0x080069a4 0x080069a4 0x000000b8 Code RO 5964 i.prov_adj_init provalctrl.o
|
||||||
0x08006a70 0x08006a70 0x00000318 Code RO 5965 i.prov_calibrate_pid provalctrl.o
|
0x08006a5c 0x08006a5c 0x000001cc Code RO 5965 i.prov_calibrate_pid provalctrl.o
|
||||||
0x08006d88 0x08006d88 0x0000006c Code RO 5966 i.prov_ctrl provalctrl.o
|
0x08006c28 0x08006c28 0x0000006c Code RO 5966 i.prov_ctrl provalctrl.o
|
||||||
0x08006df4 0x08006df4 0x00000274 Code RO 5967 i.prov_init provalctrl.o
|
0x08006c94 0x08006c94 0x00000278 Code RO 5967 i.prov_init provalctrl.o
|
||||||
0x08007068 0x08007068 0x0000019c Code RO 5968 i.prov_set provalctrl.o
|
0x08006f0c 0x08006f0c 0x00000100 Code RO 5968 i.prov_set provalctrl.o
|
||||||
0x08007204 0x08007204 0x00000150 Code RO 5113 i.readcoilstate_rtu modbus_rtu.o
|
0x0800700c 0x0800700c 0x00000150 Code RO 5113 i.readcoilstate_rtu modbus_rtu.o
|
||||||
0x08007354 0x08007354 0x0000014c Code RO 5114 i.readdisinputstate_rtu modbus_rtu.o
|
0x0800715c 0x0800715c 0x0000014c Code RO 5114 i.readdisinputstate_rtu modbus_rtu.o
|
||||||
0x080074a0 0x080074a0 0x0000010c Code RO 5115 i.readholdreg_rtu modbus_rtu.o
|
0x080072a8 0x080072a8 0x0000010c Code RO 5115 i.readholdreg_rtu modbus_rtu.o
|
||||||
0x080075ac 0x080075ac 0x00000104 Code RO 5116 i.readinputreg_rtu modbus_rtu.o
|
0x080073b4 0x080073b4 0x00000104 Code RO 5116 i.readinputreg_rtu modbus_rtu.o
|
||||||
0x080076b0 0x080076b0 0x00000068 Code RO 4749 i.setcs ms5803.o
|
0x080074b8 0x080074b8 0x00000068 Code RO 4749 i.setcs ms5803.o
|
||||||
0x08007718 0x08007718 0x0000020c Code RO 5867 i.tim6_cnt timer.o
|
0x08007520 0x08007520 0x0000020c Code RO 5867 i.tim6_cnt timer.o
|
||||||
0x08007924 0x08007924 0x00000014 Code RO 5910 i.uart_send uarts.o
|
0x0800772c 0x0800772c 0x00000014 Code RO 5910 i.uart_send uarts.o
|
||||||
0x08007938 0x08007938 0x00000022 Code RO 4970 i.wf5803_ReadReg mf5803.o
|
0x08007740 0x08007740 0x00000022 Code RO 4970 i.wf5803_ReadReg mf5803.o
|
||||||
0x0800795a 0x0800795a 0x00000022 Code RO 4972 i.wf5803_WriteReg mf5803.o
|
0x08007762 0x08007762 0x00000022 Code RO 4972 i.wf5803_WriteReg mf5803.o
|
||||||
0x0800797c 0x0800797c 0x0000014c Code RO 5117 i.writemulticoil_rtu modbus_rtu.o
|
0x08007784 0x08007784 0x0000014c Code RO 5117 i.writemulticoil_rtu modbus_rtu.o
|
||||||
0x08007ac8 0x08007ac8 0x00000104 Code RO 5118 i.writemultireg_rtu modbus_rtu.o
|
0x080078d0 0x080078d0 0x00000104 Code RO 5118 i.writemultireg_rtu modbus_rtu.o
|
||||||
0x08007bcc 0x08007bcc 0x000000c4 Code RO 5119 i.writesinglecoil_rtu modbus_rtu.o
|
0x080079d4 0x080079d4 0x000000c4 Code RO 5119 i.writesinglecoil_rtu modbus_rtu.o
|
||||||
0x08007c90 0x08007c90 0x000000b8 Code RO 5120 i.writesinglereg_rtu modbus_rtu.o
|
0x08007a98 0x08007a98 0x000000b8 Code RO 5120 i.writesinglereg_rtu modbus_rtu.o
|
||||||
0x08007d48 0x08007d48 0x00000150 Code RO 6188 x$fpl$dadd fz_wm.l(daddsub_clz.o)
|
0x08007b50 0x08007b50 0x00000150 Code RO 6188 x$fpl$dadd fz_wm.l(daddsub_clz.o)
|
||||||
0x08007e98 0x08007e98 0x000002b0 Code RO 6195 x$fpl$ddiv fz_wm.l(ddiv.o)
|
0x08007ca0 0x08007ca0 0x000002b0 Code RO 6195 x$fpl$ddiv fz_wm.l(ddiv.o)
|
||||||
0x08008148 0x08008148 0x0000005e Code RO 6198 x$fpl$dfix fz_wm.l(dfix.o)
|
0x08007f50 0x08007f50 0x0000005e Code RO 6198 x$fpl$dfix fz_wm.l(dfix.o)
|
||||||
0x080081a6 0x080081a6 0x00000002 PAD
|
0x08007fae 0x08007fae 0x00000002 PAD
|
||||||
0x080081a8 0x080081a8 0x0000005a Code RO 6206 x$fpl$dfixu fz_wm.l(dfixu.o)
|
0x08007fb0 0x08007fb0 0x0000005a Code RO 6206 x$fpl$dfixu fz_wm.l(dfixu.o)
|
||||||
0x08008202 0x08008202 0x0000002e Code RO 6211 x$fpl$dflt fz_wm.l(dflt_clz.o)
|
0x0800800a 0x0800800a 0x0000002e Code RO 6211 x$fpl$dflt fz_wm.l(dflt_clz.o)
|
||||||
0x08008230 0x08008230 0x000000a2 Code RO 6216 x$fpl$dfltll fz_wm.l(dfltll_clz.o)
|
0x08008038 0x08008038 0x000000a2 Code RO 6216 x$fpl$dfltll fz_wm.l(dfltll_clz.o)
|
||||||
0x080082d2 0x080082d2 0x00000002 PAD
|
0x080080da 0x080080da 0x00000002 PAD
|
||||||
0x080082d4 0x080082d4 0x00000154 Code RO 6220 x$fpl$dmul fz_wm.l(dmul.o)
|
0x080080dc 0x080080dc 0x00000154 Code RO 6220 x$fpl$dmul fz_wm.l(dmul.o)
|
||||||
0x08008428 0x08008428 0x0000009c Code RO 6252 x$fpl$dnaninf fz_wm.l(dnaninf.o)
|
0x08008230 0x08008230 0x0000009c Code RO 6252 x$fpl$dnaninf fz_wm.l(dnaninf.o)
|
||||||
0x080084c4 0x080084c4 0x0000000c Code RO 6254 x$fpl$dretinf fz_wm.l(dretinf.o)
|
0x080082cc 0x080082cc 0x0000000c Code RO 6254 x$fpl$dretinf fz_wm.l(dretinf.o)
|
||||||
0x080084d0 0x080084d0 0x000001d4 Code RO 6190 x$fpl$dsub fz_wm.l(daddsub_clz.o)
|
0x080082d8 0x080082d8 0x000001d4 Code RO 6190 x$fpl$dsub fz_wm.l(daddsub_clz.o)
|
||||||
0x080086a4 0x080086a4 0x0000000a Code RO 6423 x$fpl$fpinit fz_wm.l(fpinit.o)
|
0x080084ac 0x080084ac 0x0000000a Code RO 6423 x$fpl$fpinit fz_wm.l(fpinit.o)
|
||||||
0x080086ae 0x080086ae 0x00000000 Code RO 6260 x$fpl$usenofp fz_wm.l(usenofp.o)
|
0x080084b6 0x080084b6 0x00000000 Code RO 6260 x$fpl$usenofp fz_wm.l(usenofp.o)
|
||||||
0x080086ae 0x080086ae 0x00000008 Data RO 1572 .constdata stm32f4xx_hal_dma.o
|
0x080084b6 0x080084b6 0x00000008 Data RO 1572 .constdata stm32f4xx_hal_dma.o
|
||||||
0x080086b6 0x080086b6 0x00000018 Data RO 4417 .constdata system_stm32f4xx.o
|
0x080084be 0x080084be 0x00000018 Data RO 4417 .constdata system_stm32f4xx.o
|
||||||
0x080086ce 0x080086ce 0x00000002 PAD
|
0x080084d6 0x080084d6 0x00000002 PAD
|
||||||
0x080086d0 0x080086d0 0x00000020 Data RO 6479 Region$$Table anon$$obj.o
|
0x080084d8 0x080084d8 0x00000020 Data RO 6479 Region$$Table anon$$obj.o
|
||||||
|
|
||||||
|
|
||||||
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080086f0, Size: 0x00001bc8, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000020])
|
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080084f8, Size: 0x00001bc8, Max: 0x0001c000, ABSOLUTE, COMPRESSED[0x00000020])
|
||||||
|
|
||||||
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
|
||||||
|
|
||||||
|
@ -4165,7 +4164,7 @@ Memory Map of the image
|
||||||
0x200017c8 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o
|
0x200017c8 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o
|
||||||
|
|
||||||
|
|
||||||
Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x08008710, Size: 0x00000000, Max: 0x00004000, ABSOLUTE)
|
Execution Region RW_IRAM2 (Exec base: 0x2001c000, Load base: 0x08008518, Size: 0x00000000, Max: 0x00004000, ABSOLUTE)
|
||||||
|
|
||||||
**** No section assigned to this execution region ****
|
**** No section assigned to this execution region ****
|
||||||
|
|
||||||
|
@ -4196,7 +4195,7 @@ Image component sizes
|
||||||
358 32 0 110 196 7180 modbus.o
|
358 32 0 110 196 7180 modbus.o
|
||||||
2760 146 0 0 2048 13994 modbus_rtu.o
|
2760 146 0 0 2048 13994 modbus_rtu.o
|
||||||
256 50 0 17 0 3199 ms5803.o
|
256 50 0 17 0 3199 ms5803.o
|
||||||
4450 256 0 33 456 9233 provalctrl.o
|
3946 250 0 33 456 9081 provalctrl.o
|
||||||
204 22 0 0 88 1861 spi.o
|
204 22 0 0 88 1861 spi.o
|
||||||
64 26 392 0 1536 892 startup_stm32f407xx.o
|
64 26 392 0 1536 892 startup_stm32f407xx.o
|
||||||
212 36 0 9 0 9777 stm32f4xx_hal.o
|
212 36 0 9 0 9777 stm32f4xx_hal.o
|
||||||
|
@ -4219,7 +4218,7 @@ Image component sizes
|
||||||
1288 114 0 0 840 5222 usart.o
|
1288 114 0 0 840 5222 usart.o
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
30720 2048 458 408 6608 946713 Object Totals
|
30216 2042 458 408 6608 946561 Object Totals
|
||||||
0 0 32 0 0 0 (incl. Generated)
|
0 0 32 0 0 0 (incl. Generated)
|
||||||
30 0 2 13 3 0 (incl. Padding)
|
30 0 2 13 3 0 (incl. Padding)
|
||||||
|
|
||||||
|
@ -4284,15 +4283,15 @@ Image component sizes
|
||||||
|
|
||||||
Code (inc. data) RO Data RW Data ZI Data Debug
|
Code (inc. data) RO Data RW Data ZI Data Debug
|
||||||
|
|
||||||
34086 2240 458 408 6704 926561 Grand Totals
|
33582 2234 458 408 6704 926409 Grand Totals
|
||||||
34086 2240 458 32 6704 926561 ELF Image Totals (compressed)
|
33582 2234 458 32 6704 926409 ELF Image Totals (compressed)
|
||||||
34086 2240 458 32 0 0 ROM Totals
|
33582 2234 458 32 0 0 ROM Totals
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
Total RO Size (Code + RO Data) 34544 ( 33.73kB)
|
Total RO Size (Code + RO Data) 34040 ( 33.24kB)
|
||||||
Total RW Size (RW Data + ZI Data) 7112 ( 6.95kB)
|
Total RW Size (RW Data + ZI Data) 7112 ( 6.95kB)
|
||||||
Total ROM Size (Code + RO Data + RW Data) 34576 ( 33.77kB)
|
Total ROM Size (Code + RO Data + RW Data) 34072 ( 33.27kB)
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
|
|
|
@ -2242,7 +2242,7 @@ I (../Core/Inc/spi.h)(0x668F85FC)
|
||||||
I (../CH395Q/ch395cmd.h)(0x664FF969)
|
I (../CH395Q/ch395cmd.h)(0x664FF969)
|
||||||
I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\include\string.h)(0x5E8E3CC2)
|
I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\include\string.h)(0x5E8E3CC2)
|
||||||
I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\include\stdio.h)(0x5E8E3CC2)
|
I (C:\Users\admin\Desktop\wujunchao\99_General softwares\Keil_v5\ARM\ARM Compiler_5_06\include\stdio.h)(0x5E8E3CC2)
|
||||||
F (..\users\Src\provalctrl.c)(0x66CFD3CB)(--c99 -c --cpu Cortex-M4.fp.sp -g -O0 -Otime --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../board/Inc -I ../CH395Q -I ../modbus/Inc -I ../users/Inc
-I.\RTE\_VOQC
-IC:\Users\admin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include
-IC:\Users\admin\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.15.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include
-D__UVISION_VERSION="539" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o voqc\provalctrl.o --omf_browse voqc\provalctrl.crf --depend voqc\provalctrl.d)
|
F (..\users\Src\provalctrl.c)(0x66D517CB)(--c99 -c --cpu Cortex-M4.fp.sp -g -O0 -Otime --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../board/Inc -I ../CH395Q -I ../modbus/Inc -I ../users/Inc
-I.\RTE\_VOQC
-IC:\Users\admin\AppData\Local\Arm\Packs\ARM\CMSIS\5.9.0\CMSIS\Core\Include
-IC:\Users\admin\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.15.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include
-D__UVISION_VERSION="539" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx
-o voqc\provalctrl.o --omf_browse voqc\provalctrl.crf --depend voqc\provalctrl.d)
|
||||||
I (../users/Inc/provalctrl.h)(0x66CFD26E)
|
I (../users/Inc/provalctrl.h)(0x66CFD26E)
|
||||||
I (../modbus/Inc/modbus.h)(0x66CEC5B0)
|
I (../modbus/Inc/modbus.h)(0x66CEC5B0)
|
||||||
I (../users/Inc/timer.h)(0x66CEDE30)
|
I (../users/Inc/timer.h)(0x66CEDE30)
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -28,13 +28,13 @@ void prov_init(void) //不同比例阀的初始参数不一样
|
||||||
pv_one.input_max = 20; //输入电流上限20mA
|
pv_one.input_max = 20; //输入电流上限20mA
|
||||||
pv_one.bias = 0; //偏差 = 目标气压百分比 - 当前气压百分比
|
pv_one.bias = 0; //偏差 = 目标气压百分比 - 当前气压百分比
|
||||||
pv_one.bias_previous = 0; //前一个时刻的偏差
|
pv_one.bias_previous = 0; //前一个时刻的偏差
|
||||||
pv_one.bias_area = 0.5; //允许的误差范围,±a(%)
|
pv_one.bias_area = 0.3; //允许的误差范围,±a(%)
|
||||||
|
|
||||||
pv_one.Kp = data_rd[0]; //比例系数
|
pv_one.Kp = data_rd[0]; //比例系数
|
||||||
pv_one.Ti = (data_rd[1] == 0)?(1000000):(data_rd[1]); //积分时间,位于分母
|
pv_one.Ti = (data_rd[1] == 0)?(1000000):(data_rd[1]); //积分时间,位于分母
|
||||||
pv_one.Ing = 0; //积分输出
|
pv_one.Ing = 0; //积分输出
|
||||||
pv_one.Ing_max = 50; //积分上限
|
pv_one.Ing_max = 10000; //积分上限
|
||||||
pv_one.Ing_min = -50; //积分下限
|
pv_one.Ing_min = -10000; //积分下限
|
||||||
pv_one.Ing_sum = 0; //偏差求和
|
pv_one.Ing_sum = 0; //偏差求和
|
||||||
pv_one.Td = data_rd[2]; //微分时间
|
pv_one.Td = data_rd[2]; //微分时间
|
||||||
pv_one.Ts = 0.05; //采样周期,50ms
|
pv_one.Ts = 0.05; //采样周期,50ms
|
||||||
|
@ -77,8 +77,8 @@ void prov_init(void) //不同比例阀的初始参数不一样
|
||||||
pv_two.Kp = data_rd[0];
|
pv_two.Kp = data_rd[0];
|
||||||
pv_two.Ti = (data_rd[1] == 0)?(1000000):(data_rd[1]); //积分时间
|
pv_two.Ti = (data_rd[1] == 0)?(1000000):(data_rd[1]); //积分时间
|
||||||
pv_two.Ing = 0;
|
pv_two.Ing = 0;
|
||||||
pv_two.Ing_max = 50;
|
pv_two.Ing_max = 10000;
|
||||||
pv_two.Ing_min = -50;
|
pv_two.Ing_min = -10000;
|
||||||
pv_two.Ing_sum = 0;
|
pv_two.Ing_sum = 0;
|
||||||
pv_two.Td = data_rd[2];
|
pv_two.Td = data_rd[2];
|
||||||
pv_two.Ts = 0.05; //采样周期,50ms
|
pv_two.Ts = 0.05; //采样周期,50ms
|
||||||
|
@ -149,25 +149,6 @@ void prov_set(float target_p, propotion_valve *pvx) //比例阀目标值设定
|
||||||
// pvx->cstep_max = pvx->current_input + (float)0.8; //逐步输出调节上限
|
// pvx->cstep_max = pvx->current_input + (float)0.8; //逐步输出调节上限
|
||||||
// pvx->cstep_min = pvx->current_input - (float)0.8; //逐步输出调节下限
|
// pvx->cstep_min = pvx->current_input - (float)0.8; //逐步输出调节下限
|
||||||
// pvx->cstep_wait = 0; //等待计数清零
|
// pvx->cstep_wait = 0; //等待计数清零
|
||||||
switch(pvx->gas_direction) //根据气体方向对输出做补偿
|
|
||||||
{
|
|
||||||
case GAS_IN:
|
|
||||||
{
|
|
||||||
pvx->current_input = ( (pvx->current_input*(1 - out_makeup)) <= pvx->input_min )?(pvx->input_min):(pvx->current_input*(1 - out_makeup) ); //输出补偿
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GAS_OUT:
|
|
||||||
{
|
|
||||||
pvx->current_input = ( (pvx->current_input*(1 - out_makeup)) <= pvx->input_min )?(pvx->input_min):(pvx->current_input*(1 - out_makeup)); //输出补偿
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
pvx->slow_down_flg = 0; //减速标志清零
|
pvx->slow_down_flg = 0; //减速标志清零
|
||||||
|
|
||||||
|
@ -201,42 +182,40 @@ void prov_calibrate_pid(propotion_valve *pvx)
|
||||||
pvx->Div = ( pvx->Td / pvx->Ts ) * ( pvx->bias - pvx->bias_previous ); //微分项
|
pvx->Div = ( pvx->Td / pvx->Ts ) * ( pvx->bias - pvx->bias_previous ); //微分项
|
||||||
|
|
||||||
pvx->pidout = pvx->Kp*( pvx->bias + pvx->Ing + pvx->Div ); //pid输出
|
pvx->pidout = pvx->Kp*( pvx->bias + pvx->Ing + pvx->Div ); //pid输出
|
||||||
pvx->current_input += (pvx->pidout/100) * (pvx->input_max - pvx->input_min);
|
pvx->current_input = (pvx->pidout/100) * (pvx->input_max - pvx->input_min);
|
||||||
|
|
||||||
pvx->bias_previous = pvx->bias; //更新前一个时刻的偏差
|
pvx->bias_previous = pvx->bias; //更新前一个时刻的偏差
|
||||||
|
|
||||||
if(pvx->slow_down_flg == 1) //是否已经减速过
|
// if(pvx->slow_down_flg == 1) //是否已经减速过
|
||||||
{
|
// {
|
||||||
pvx->current_input = (pvx->current_input < pvx->pidout_max)?(pvx->current_input):(pvx->pidout_max); //pid输出限幅
|
pvx->current_input = (pvx->current_input < pvx->pidout_max)?(pvx->current_input):(pvx->pidout_max); //pid输出限幅
|
||||||
pvx->current_input = (pvx->current_input > pvx->pidout_min)?(pvx->current_input):(pvx->pidout_min);
|
pvx->current_input = (pvx->current_input > pvx->pidout_min)?(pvx->current_input):(pvx->pidout_min);
|
||||||
}else
|
// }else
|
||||||
{
|
// {
|
||||||
switch(pvx->gas_direction) //根据气体方向对输出范围做补偿
|
// switch(pvx->gas_direction) //根据气体方向对输出范围做补偿
|
||||||
{
|
// {
|
||||||
case GAS_IN:
|
// case GAS_IN:
|
||||||
{
|
// {
|
||||||
pvx->current_input = (pvx->current_input < (pvx->pidout_max*(1 - out_makeup) ) )?(pvx->current_input):(pvx->pidout_max*(1 - out_makeup) ); //pid输出限幅
|
|
||||||
pvx->current_input = (pvx->current_input > (pvx->pidout_min*(1 - out_makeup) ) )?(pvx->current_input):(pvx->pidout_min*(1 - out_makeup) );
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GAS_OUT:
|
// }
|
||||||
{
|
// break;
|
||||||
pvx->current_input = (pvx->current_input < (pvx->pidout_max*(1 - out_makeup) ) )?(pvx->current_input):(pvx->pidout_max*(1 - out_makeup) ); //pid输出限幅
|
//
|
||||||
pvx->current_input = (pvx->current_input > (pvx->pidout_min*(1 - out_makeup) ) )?(pvx->current_input):(pvx->pidout_min*(1 - out_makeup) );
|
// case GAS_OUT:
|
||||||
}
|
// {
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
// }
|
||||||
{
|
// break;
|
||||||
}
|
//
|
||||||
break;
|
// default:
|
||||||
}
|
// {
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
if( abs_bias(pvx->previous_pressure[0] - pvx->previous_pressure[SLDW_PRES_OUT - 1]) <= 10 )
|
if( abs_bias(pvx->previous_pressure[0] - pvx->previous_pressure[SLDW_PRES_OUT - 1]) <= 10 )
|
||||||
{
|
{
|
||||||
pvx->slow_down_flg = 1;
|
pvx->slow_down_flg = 1;
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
|
|
||||||
pvx->current_input = (pvx->current_input < pvx->input_max)?(pvx->current_input):(pvx->input_max); //dac输出限幅
|
pvx->current_input = (pvx->current_input < pvx->input_max)?(pvx->current_input):(pvx->input_max); //dac输出限幅
|
||||||
pvx->current_input = (pvx->current_input > pvx->input_min)?(pvx->current_input):(pvx->input_min);
|
pvx->current_input = (pvx->current_input > pvx->input_min)?(pvx->current_input):(pvx->input_min);
|
||||||
|
@ -244,8 +223,7 @@ void prov_calibrate_pid(propotion_valve *pvx)
|
||||||
pvx->pvout(pvx->current_input); //dac输出
|
pvx->pvout(pvx->current_input); //dac输出
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
pvx->Ing_sum = 0;
|
|
||||||
pvx->Ing = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -563,9 +541,9 @@ void prov_adj(propotion_valve *pvx, prov_adjust *adj_pvx)
|
||||||
|
|
||||||
/* PI [0.45,0.8]*/
|
/* PI [0.45,0.8]*/
|
||||||
/* PID [0.6,0.5,0.12]*/
|
/* PID [0.6,0.5,0.12]*/
|
||||||
pvx->Kp = (float)0.6 * ( 4 * (float)0.1 ) / ( (float)3.1415 * adj_pvx->relay_A ) *(float)0.5;//偏大
|
pvx->Kp = (float)0.6 * ( 4 * (float)0.1 ) / ( (float)3.1415 * adj_pvx->relay_A );
|
||||||
pvx->Ti = (float)0.5 * adj_pvx->relay_Tc/1000 * 100; //偏小
|
pvx->Ti = (float)0.5 * adj_pvx->relay_Tc/1000 / 10;
|
||||||
pvx->Td = (float)0.12 * adj_pvx->relay_Tc/1000 * (float)0.5; //偏大
|
pvx->Td = (float)0.12 * adj_pvx->relay_Tc/1000;
|
||||||
|
|
||||||
|
|
||||||
switch(pvx->tag)
|
switch(pvx->tag)
|
||||||
|
|
Loading…
Reference in New Issue