@@ -41,6 +41,7 @@ extern float Acc; /* | |||||
extern uint8_t PulseNum; /* 脉冲段计数 */ | extern uint8_t PulseNum; /* 脉冲段计数 */ | ||||
extern int32_t AllPulseCNT; | extern int32_t AllPulseCNT; | ||||
extern int32_t BaseCNT; | extern int32_t BaseCNT; | ||||
extern int32_t CNT_Only[10]; | |||||
extern uint8_t EndFlag; | extern uint8_t EndFlag; | ||||
extern uint8_t FullFlag; | extern uint8_t FullFlag; | ||||
@@ -425,17 +425,7 @@ void PulseGetCount(void *p_arg) | |||||
{ | { | ||||
Options.Dir = 0; | Options.Dir = 0; | ||||
} | } | ||||
if (TIM2->CNT != 0) | |||||
{ | |||||
if (Options.Dir == 1) | |||||
{ | |||||
CNT_Only[NowPulse] = 0 - (TIM2->CNT); | |||||
} | |||||
else if (Options.Dir == 0) | |||||
{ | |||||
CNT_Only[NowPulse] = TIM2->CNT; | |||||
} | |||||
} | |||||
if (TIM2->CNT != 0) CNT_Only[NowPulse] = TIM2->CNT; | |||||
AllPulseCNT = CNT_Only[0] + CNT_Only[1] + CNT_Only[2] + CNT_Only[3] + | AllPulseCNT = CNT_Only[0] + CNT_Only[1] + CNT_Only[2] + CNT_Only[3] + | ||||
CNT_Only[4] + CNT_Only[5] + CNT_Only[6] + CNT_Only[7] + | CNT_Only[4] + CNT_Only[5] + CNT_Only[6] + CNT_Only[7] + | ||||
CNT_Only[8] + CNT_Only[9]; | CNT_Only[8] + CNT_Only[9]; | ||||
@@ -449,9 +439,6 @@ void PulseGetCount(void *p_arg) | |||||
* @brief 任务5,EXT | * @brief 任务5,EXT | ||||
* @return 无 | * @return 无 | ||||
*/ | */ | ||||
/* 最新思路:不采用进入中断的方式,直接停止现在进行的定时器(10【产生脉冲】) | |||||
重新设置定时器2【脉冲计数】的CNT和ARR为下一个脉冲的(段切换) */ | |||||
void EXTSet(void *p_arg) | void EXTSet(void *p_arg) | ||||
{ | { | ||||
p_arg = p_arg; | p_arg = p_arg; | ||||
@@ -478,16 +465,32 @@ void EXTSet(void *p_arg) | |||||
while(HAL_GPIO_ReadPin(GPIOG, X5_Pin) == GPIO_PIN_SET); | while(HAL_GPIO_ReadPin(GPIOG, X5_Pin) == GPIO_PIN_SET); | ||||
} | } | ||||
} | } | ||||
if(X4_Sta == 1 && Options.EXT == 0) | |||||
/* X4引脚的EXT信号 */ | |||||
if(X4_Sta == 1 && Options.EXT == 0 && PulseOutput[NowPulse].EXT == 1) | |||||
{ | { | ||||
if (TIM2->CNT != 0) CNT_Only[NowPulse] = TIM2->CNT; /* 保存当前的脉冲计数 */ | |||||
TIM2->CNT = TIM2->ARR - 1; | |||||
EXT_Flag = 1; | EXT_Flag = 1; | ||||
X4_Sta = 0; | X4_Sta = 0; | ||||
} | } | ||||
if(X5_Sta == 1 && Options.EXT == 1) | |||||
else | |||||
{ | |||||
X4_Sta = 0; | |||||
} | |||||
/* X5引脚的EXT信号 */ | |||||
if(X5_Sta == 1 && Options.EXT == 1 && PulseOutput[NowPulse].EXT == 1) | |||||
{ | { | ||||
if (TIM2->CNT != 0) CNT_Only[NowPulse] = TIM2->CNT; /* 保存当前的脉冲计数 */ | |||||
TIM2->CNT = TIM2->ARR - 1; | |||||
EXT_Flag = 1; | EXT_Flag = 1; | ||||
X5_Sta = 0; | X5_Sta = 0; | ||||
} | } | ||||
else | |||||
{ | |||||
X5_Sta = 0; | |||||
} | |||||
if(EXT_Flag == 1) | if(EXT_Flag == 1) | ||||
{ | { | ||||
EXT_Flag = 0; | EXT_Flag = 0; | ||||
@@ -504,6 +507,8 @@ void EXTSet(void *p_arg) | |||||
*/ | */ | ||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) | void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) | ||||
{ | { | ||||
OSIntEnter(); /* 进入中断 */ | |||||
if (htim == (&htim3)) | if (htim == (&htim3)) | ||||
{ | { | ||||
if (ArrFlag == 1) | if (ArrFlag == 1) | ||||
@@ -571,6 +576,8 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) | |||||
在此函数内实现最后一段脉冲的减速过程。 */ | 在此函数内实现最后一段脉冲的减速过程。 */ | ||||
} | } | ||||
} | } | ||||
OSIntExit(); /* 退出中断 */ | |||||
} | } | ||||
/* USER CODE END 4 */ | /* USER CODE END 4 */ | ||||
@@ -153,11 +153,11 @@ | |||||
<RecentlyUsedMenus>1</RecentlyUsedMenus> | <RecentlyUsedMenus>1</RecentlyUsedMenus> | ||||
<MenuShadows>1</MenuShadows> | <MenuShadows>1</MenuShadows> | ||||
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay> | <ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay> | ||||
<CommandsUsage>CA0F00002200298100000400000013860000050000002CE1000002000000108600009B050000239200000600000029E10000040000005F860000040000000F8100000100000020810000050000000C810000100000001D810000010000005986000001000000048600000300000056860000E8020000288100000300000000840000030000002BE100000700000025E100000100000009860000010000000E810000020000001F810000E800000000E10000020000000B810000060000005886000001000000148600000B02000011860000FC020000058100000100000000860000020000004681000007010000608600000100000008860000050000005D8600001000000016860000010000000586000001000000</CommandsUsage> | |||||
<CommandsUsage>F10F00002200298100000400000013860000050000002CE100000200000010860000A6050000239200000600000029E10000040000005F860000040000000F8100000100000020810000050000000C810000100000001D810000010000005986000001000000048600000300000056860000E8020000288100000300000000840000030000002BE100000700000025E100000100000009860000010000000E810000020000001F810000EB00000000E10000020000000B81000006000000588600000100000014860000180200001186000005030000058100000100000000860000020000004681000009010000608600000100000008860000050000005D8600001100000016860000010000000586000001000000</CommandsUsage> | |||||
</MFCToolBarParameters> | </MFCToolBarParameters> | ||||
<CommandManager> | <CommandManager> | ||||
<CommandsWithoutImages>300020870000238700002487000021870000198600000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400002AE10000008200001C8200000182000067860000838600005886000004DC00007784000007840000808C000044D500007486000045D5000046D5000047D5000048D5000049D500004AD500004BD500004CD500001C8F00001E8F00001F8F0000208F0000218F0000118F000000DC000001DC000002DC000003DC0000A4860000A38600005486000059860000</CommandsWithoutImages> | <CommandsWithoutImages>300020870000238700002487000021870000198600000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400002AE10000008200001C8200000182000067860000838600005886000004DC00007784000007840000808C000044D500007486000045D5000046D5000047D5000048D5000049D500004AD500004BD500004CD500001C8F00001E8F00001F8F0000208F0000218F0000118F000000DC000001DC000002DC000003DC0000A4860000A38600005486000059860000</CommandsWithoutImages> | ||||
<MenuUserImages>5D001386000031000000048400007E0000000286000013000000578600001C000000768600003B000000108600002F00000015810000570000002CE10000750000004581000016000000848600003C00000007E100006D000000318400008500000023920000000000000D86000019000000D98600001000000004E100006B000000208100005D0000000F810000550000005F860000660000000A8600002D00000001E10000680000000D800000490000000C81000052000000078600002A00000023E100006F00000006840000800000000486000027000000198200004700000056860000350000001781000059000000038400007D00000001860000120000009A8600001A00000016820000450000004A810000790000001481000056000000008400007A0000002BE1000074000000448100000A0000008584000017000000008100004B00000030840000840000000E840000820000000C86000018000000D88600000F0000005E8600003700000003E100006A0000001F8100005C0000000E810000540000001A860000340000002F8200004800000025E1000071000000098600002C00000000E100006700000006860000290000008E8600003D00000022E100006E0000000B81000051000000148600003200000041E1000077000000D184000020000000058400007F0000000386000014000000698600003A000000188200004600000011860000300000001681000058000000028400007C0000000086000011000000558600000800000049810000780000004681000064000000108400008300000032840000860000000E8600001B000000DA86000006000000438100000B000000608600003900000005E100006C00000051840000880000000B8600002E0000005D8600003600000002E10000690000000A84000081000000C386000004000000A18600003E0000000D81000053000000088600002B0000005C840000020000000586000028000000C08600000E00000037870000030000001686000033000000</MenuUserImages> | |||||
<MenuUserImages>5D00578600001C0000000286000013000000048400007E00000013860000310000002CE10000750000001581000057000000108600002F000000768600003B000000D9860000100000000D860000190000002392000000000000318400008500000007E100006D000000848600003C00000045810000160000000A8600002D0000005F860000660000000F81000055000000208100005D00000004E100006B00000023E100006F000000078600002A0000000C810000520000000D8000004900000001E10000680000001982000047000000048600002700000006840000800000004A8100007900000016820000450000009A8600001A0000000186000012000000038400007D000000178100005900000056860000350000002BE1000074000000008400007A0000001481000056000000D88600000F0000000C860000180000000E840000820000003084000084000000008100004B0000008584000017000000448100000A000000098600002C00000025E10000710000002F820000480000001A860000340000000E810000540000001F8100005C00000003E100006A0000005E860000370000000B8100005100000022E100006E0000008E8600003D000000068600002900000000E10000670000001882000046000000698600003A0000000386000014000000058400007F000000D18400002000000041E10000770000001486000032000000498100007800000055860000080000000086000011000000028400007C00000016810000580000001186000030000000DA860000060000000E8600001B0000003284000086000000108400008300000046810000640000000B8600002E000000518400008800000005E100006C0000006086000039000000438100000B000000088600002B0000000D81000053000000A18600003E000000C3860000040000000A8400008100000002E10000690000005D8600003600000016860000330000003787000003000000C08600000E00000005860000280000005C84000002000000</MenuUserImages> | |||||
</CommandManager> | </CommandManager> | ||||
<Pane-59393> | <Pane-59393> | ||||
<ID>0</ID> | <ID>0</ID> | ||||
@@ -1012,7 +1012,7 @@ | |||||
<item>arr</item> | <item>arr</item> | ||||
<item>PulseNum</item> | <item>PulseNum</item> | ||||
<item>CNT_Only</item> | <item>CNT_Only</item> | ||||
<item></item> | |||||
<item /> | |||||
</expressions> | </expressions> | ||||
<col-names> | <col-names> | ||||
<item>Expression</item> | <item>Expression</item> | ||||
@@ -1120,7 +1120,7 @@ | |||||
</BasePane-34048> | </BasePane-34048> | ||||
<MFCToolBar-34049> | <MFCToolBar-34049> | ||||
<Name>Debug</Name> | <Name>Debug</Name> | ||||
<Buttons>00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000040035000000FFFEFF0000000000000000000000000001000000010000000180138600000000040031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000040037000000FFFEFF0000000000000000000000000001000000010000000180608600000000040039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000040036000000FFFEFF000000000000000000000000000100000001000000018010860000000004002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000000030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000040032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000060009802087000000000000FFFFFFFFFFFEFF06530079007300740065006D000100000000000000000000000100000001000000000000000000000001000000000009802387000000000000FFFFFFFFFFFEFF0443006F00720065000100000000000000000000000100000001000000000000000000000001000000000009802487000000000000FFFFFFFFFFFEFF0853006F006600740077006100720065000100000000000000000000000100000001000000000000000000000001000000000009802187000000000000FFFFFFFFFFFEFF12480061007200640077006100720065002000720065007300650074002000700069006E000100000000000000000000000100000001000000000000000000000001000000000009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000</Buttons> | |||||
<Buttons>00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000000035000000FFFEFF0000000000000000000000000001000000010000000180138600000000000031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000000037000000FFFEFF0000000000000000000000000001000000010000000180608600000000000039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000000036000000FFFEFF000000000000000000000000000100000001000000018010860000000000002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000040030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000000032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000060009802087000000000000FFFFFFFFFFFEFF06530079007300740065006D000100000000000000000000000100000001000000000000000000000001000000000009802387000000000000FFFFFFFFFFFEFF0443006F00720065000100000000000000000000000100000001000000000000000000000001000000000009802487000000000000FFFFFFFFFFFEFF0853006F006600740077006100720065000100000000000000000000000100000001000000000000000000000001000000000009802187000000000000FFFFFFFFFFFEFF12480061007200640077006100720065002000720065007300650074002000700069006E000100000000000000000000000100000001000000000000000000000001000000000009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000</Buttons> | |||||
</MFCToolBar-34049> | </MFCToolBar-34049> | ||||
<Pane-34049> | <Pane-34049> | ||||
<ID>34049</ID> | <ID>34049</ID> | ||||
@@ -1137,7 +1137,7 @@ | |||||
</BasePane-34049> | </BasePane-34049> | ||||
<MFCToolBar-34050> | <MFCToolBar-34050> | ||||
<Name>Trace</Name> | <Name>Trace</Name> | ||||
<Buttons>00200000010000000200FFFF01001100434D4643546F6F6C426172427574746F6E53920000000004008A000000FFFEFF03450054004D0000000000000000000000000001000000010000000180549200000000000025000000FFFEFF03530057004F00000000000000000000000000010000000100000000000000FFFEFF05540072006100630065002F000000</Buttons> | |||||
<Buttons>00200000010000000200FFFF01001100434D4643546F6F6C426172427574746F6E539200000000040089000000FFFEFF03450054004D0000000000000000000000000001000000010000000180549200000000000025000000FFFEFF03530057004F00000000000000000000000000010000000100000000000000FFFEFF05540072006100630065002F000000</Buttons> | |||||
</MFCToolBar-34050> | </MFCToolBar-34050> | ||||
<Pane-34050> | <Pane-34050> | ||||
<ID>34050</ID> | <ID>34050</ID> | ||||
@@ -1154,7 +1154,7 @@ | |||||
</BasePane-34050> | </BasePane-34050> | ||||
<MFCToolBar-34051> | <MFCToolBar-34051> | ||||
<Name>Main</Name> | <Name>Main</Name> | ||||
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000067000000FFFEFF000000000000000000000000000100000001000000018001E100000000000068000000FFFEFF000000000000000000000000000100000001000000018003E10000000000006A000000FFFEFF000000000000000000000000000100000001000000018000810000000000004B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006D000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006F000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018025E100000000000071000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000000074000000FFFEFF00000000000000000000000000010000000100000001802CE100000000000075000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005E000000FFFEFF000000000000000000000000000100000001000000018024E100000000000070000000FFFEFF000000000000000000000000000100000001000000018028E100000000040072000000FFFEFF000000000000000000000000000100000001000000018029E100000000000073000000FFFEFF000000000000000000000000000100000001000000018002810000000000004D000000FFFEFF0000000000000000000000000001000000010000000180298100000000000062000000FFFEFF0000000000000000000000000001000000010000000180278100000000000060000000FFFEFF0000000000000000000000000001000000010000000180288100000000000061000000FFFEFF00000000000000000000000000010000000100000001801D810000000004005A000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000000051000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000052000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000066000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005C000000FFFEFF000000000000000000000000000100000001000000018020810000000000005D000000FFFEFF0000000000000000000000000001000000010000000180468100000000020064000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons> | |||||
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000067000000FFFEFF000000000000000000000000000100000001000000018001E100000000000068000000FFFEFF000000000000000000000000000100000001000000018003E10000000000006A000000FFFEFF000000000000000000000000000100000001000000018000810000000000004B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006D000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006F000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018025E100000000000071000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000000074000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040075000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005E000000FFFEFF000000000000000000000000000100000001000000018024E100000000000070000000FFFEFF000000000000000000000000000100000001000000018028E100000000040072000000FFFEFF000000000000000000000000000100000001000000018029E100000000000073000000FFFEFF000000000000000000000000000100000001000000018002810000000000004D000000FFFEFF0000000000000000000000000001000000010000000180298100000000000062000000FFFEFF0000000000000000000000000001000000010000000180278100000000000060000000FFFEFF0000000000000000000000000001000000010000000180288100000000000061000000FFFEFF00000000000000000000000000010000000100000001801D810000000004005A000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000000051000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000052000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000066000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005C000000FFFEFF000000000000000000000000000100000001000000018020810000000000005D000000FFFEFF0000000000000000000000000001000000010000000180468100000000020064000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons> | |||||
</MFCToolBar-34051> | </MFCToolBar-34051> | ||||
<Pane-34051> | <Pane-34051> | ||||
<ID>34051</ID> | <ID>34051</ID> | ||||
@@ -20,7 +20,7 @@ | |||||
<LeaveTargetRunning>_ 0</LeaveTargetRunning> | <LeaveTargetRunning>_ 0</LeaveTargetRunning> | ||||
</StLinkDriver> | </StLinkDriver> | ||||
<DebugChecksum> | <DebugChecksum> | ||||
<Checksum>1211547681</Checksum> | |||||
<Checksum>223229180</Checksum> | |||||
</DebugChecksum> | </DebugChecksum> | ||||
<Exceptions> | <Exceptions> | ||||
<StopOnUncaught>_ 0</StopOnUncaught> | <StopOnUncaught>_ 0</StopOnUncaught> | ||||
@@ -152,8 +152,7 @@ | |||||
<mode>0</mode> | <mode>0</mode> | ||||
</DisassembleMode> | </DisassembleMode> | ||||
<Breakpoints2> | <Breakpoints2> | ||||
<Bp0>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\Core\Src\stm32f4xx_it.c}.226.2" 0 0 1 "" 0 "" 0</Bp0> | |||||
<Count>1</Count> | |||||
<Count>0</Count> | |||||
</Breakpoints2> | </Breakpoints2> | ||||
<Aliases> | <Aliases> | ||||
<A0>_ "C:\Users\Chiri\Desktop\PLSR\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm" "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm"</A0> | <A0>_ "C:\Users\Chiri\Desktop\PLSR\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm" "C:\Users\Chiri\Desktop\TrainCamp-Jiangyunsong-PLSR\cmsis\uC-CPU\ARM-Cortex-M4\IAR\cpu_a.asm"</A0> | ||||
@@ -94,6 +94,7 @@ void ProcessModbusFrame(uint8_t buffer[], uint16_t longth) | |||||
;break; | ;break; | ||||
case WRITE_ONLY_REGISTER: WriteOnlyRegister(buffer, longth) | case WRITE_ONLY_REGISTER: WriteOnlyRegister(buffer, longth) | ||||
;break; | ;break; | ||||
case PLSR_COUNT_CLEAR: PLSRCountClear(); | |||||
default :ErrorBack(buffer, longth); /* 无效指令码 */ | default :ErrorBack(buffer, longth); /* 无效指令码 */ | ||||
;break; | ;break; | ||||
@@ -692,6 +693,20 @@ void GetHistory(uint8_t buffer[], uint16_t longth) | |||||
} | } | ||||
} | } | ||||
/** | |||||
* @brief 0x39指令码的执行,输出历史 | |||||
* @param[in] buffer[] 预处理的数据 | |||||
* @param[in] longth 数据的长度 | |||||
* @return 无 | |||||
*/ | |||||
void PLSRCountClear(void) | |||||
{ | |||||
for(int i = 0; i < 10; i ++) | |||||
{ | |||||
CNT_Only[i] = 0; | |||||
} | |||||
} | |||||
/** | /** | ||||
* @brief 读取并还原sram数据。 | * @brief 读取并还原sram数据。 | ||||
* @return 无 | * @return 无 | ||||
@@ -20,29 +20,38 @@ | |||||
#define GET_HISTORY_CODE 0x55 | #define GET_HISTORY_CODE 0x55 | ||||
#define READ_ODD_REGUSTER_CODE 0x33 | #define READ_ODD_REGUSTER_CODE 0x33 | ||||
#define WRITE_ONLY_REGISTER 0x06 | #define WRITE_ONLY_REGISTER 0x06 | ||||
#define PLSR_COUNT_CLEAR 0x39 | |||||
#define SLAVES_ADDRES 0x01 | #define SLAVES_ADDRES 0x01 | ||||
/* 函数声明 */ | /* 函数声明 */ | ||||
//基础Modbus | |||||
void ErrorBack(uint8_t buffer[], uint16_t longth); | void ErrorBack(uint8_t buffer[], uint16_t longth); | ||||
void ProcessModbusFrame(uint8_t buffer[], uint16_t longth); | void ProcessModbusFrame(uint8_t buffer[], uint16_t longth); | ||||
void ReadCoilProcess (uint8_t buffer[], uint16_t longth); | void ReadCoilProcess (uint8_t buffer[], uint16_t longth); | ||||
void WriteCoilProcess(uint8_t buffer[], uint16_t longth); | |||||
void WriteMulCoilProcess(uint8_t buffer[], uint16_t longth); | void WriteMulCoilProcess(uint8_t buffer[], uint16_t longth); | ||||
void ReadRegisterProcess(uint8_t buffer[], uint16_t longth); | void ReadRegisterProcess(uint8_t buffer[], uint16_t longth); | ||||
void WriteMulRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
void WriteCoilProcess(uint8_t buffer[], uint16_t longth); | |||||
void ReadOddRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
void ReadEXRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
void WriteEXRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
void WriteOnlyRegister(uint8_t buffer[], uint16_t longth); | void WriteOnlyRegister(uint8_t buffer[], uint16_t longth); | ||||
void WriteMulRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
//附加Modbus | |||||
void SaveHistory(uint8_t buffer[], uint16_t longth); | void SaveHistory(uint8_t buffer[], uint16_t longth); | ||||
void LoadHistory(void); | void LoadHistory(void); | ||||
void GetHistory(uint8_t buffer[], uint16_t longth); | void GetHistory(uint8_t buffer[], uint16_t longth); | ||||
void ReadOddRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
void ReadEXRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
void WriteEXRegisterProcess(uint8_t buffer[], uint16_t longth); | |||||
//掉电保持 | |||||
void ModbusLoadSRAM(void); | void ModbusLoadSRAM(void); | ||||
void ModbusSaveSRAM(void); | void ModbusSaveSRAM(void); | ||||
//PLSR | |||||
void PLSRCountClear(void); | |||||
/* 变量定义 */ | /* 变量定义 */ | ||||
extern uint8_t History[3][512]; /*存放历史的地方*/ | extern uint8_t History[3][512]; /*存放历史的地方*/ | ||||
extern uint8_t HistoryLongth[3];/*历史数据大小的计数*/ | extern uint8_t HistoryLongth[3];/*历史数据大小的计数*/ | ||||