This commit is contained in:
sunbeam 2024-11-15 22:30:59 +08:00
parent 3b099cdd8f
commit 92187ab261
8 changed files with 162 additions and 464 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,91 @@
S00E00004D313220202020206D6F7451
S1130000CE0000000000000000000000000000001E
S113001000000000000000000000000000000000DC
S11300205E017801000000002801000000000000CB
S113003000000000000000000000000000000000BC
S113004000000000000000000000000000000000AC
S1130050000000000000000000000000000000009C
S1130060000000000000000000000000000000008C
S1130070000000000000000000000000000000007C
S1130082000000000000000000000000000000006A
S1080092000000000065
S10700C07A47E00493
S10D00C4000000000000000000002E
S11300CECBF820FE303CFCFC7A0100FCF301003638
S11300DE00FC3025FCEF04CC0000A747DFF93620E6
S11300EEFE3020FEEF04CC0000A747DFF9410032BA
S11300FE1500EF08B3114982004826FCF643DFF4DD
S113010E4100320000EF08B3114980004820FEF68A
S113011E43DFF4FCBE0100F6EFFEC1C3C5C78EFD7E
S113012E708EFCC18E31D1DD1291DD18CE3101C03D
S113013E9EFC609EFDC6C4C2C061FC3002FCFC760F
S113014E0200EFE83000FCFC760200CE3100EFDF57
S113015EC1C3C5C78EFD708EFCC1FCF60300C09EE4
S10F016EFC609EFDC6C4C2C061FC61FCC4
S113017A16C80300AEF82761D339315E12F643DD9F
S113018A27BBBC02BC04BC06BC08BC0ABC0CBC0E23
S113019ABC10BC12BC14BC16BC18BC1ABC1CBC1EB9
S11301AA3704200037B3EFD6AEF847DD06F6BBA70F
S11301BAA7EFF5D7717AFAFC470300FC610300FC48
S11301CAB90300EFFA717AFAD7CF770002FC090271
S11301DA00FCF80100FC0C0200FC220200FC7D0277
S11301EA00FC3C0300F57800D7717BFAEFDB36A1FB
S11301FAFFCEA00071F2714BA4F5F3007183D78E80
S113020AA8D7343400CD010ECA0000CA2DE0CA4270
S113021A04CE21E1CE22FFD730100004E0001634C8
S113022A100071D2CE3000712AE6712BE2712AEEE7
S113023A712AEA51036F22FF9E22CE3008CE32A0E1
S113024ACA0000CA01FFCA0200CE3101710A30D7BE
S113025A712BE2712BE6717A30D7717B30712AE601
S113026A712BE2D7710A30D7710B30D714AD1E3116
S113027A6EB9D734F00036F000F67182BAC6300F80
S113028A0ABAC4716AE5716BE1717AE5717BE1714D
S113029A3AE5713BE1710AE6710BE2711AE6711BE8
S11302AAE2714AE5714BE1716AED716AE9717AEDBD
S11302BA717AE9F6BAA0C918BF5DAAC8085CFE0833
S11302CABAC8AACA085CFE08BACAF6BAA2C91ABF48
S11302DA5DAACE085CFD08BACEAACC085CFD08BAB1
S11302EACCAAC8085CFD08BAC8AACA085CFD08BA40
S11302FACAD734B201716BE1716BE5A9086C0108C4
S113030AB9D734B401A9086C0108B9716AE5716BEB
S113031AE1D734B201717BE1717BE5A9086C02086B
S113032AB9D734B401A9086C0208B9717AE5717BAA
S113033AE1D7710AE4710BE0D7CEABACD7FCFC026F
S113034A00FC5A0200FC6E0200FC1C0300F1FC8152
S113035A0400F1ECA20400ECD10400D1DD0491DD27
S113036A07D7E0F1ECFF04005002EFF7D1DD049166
S113037A61E8D7F6ECFF0400F1FC6B04004C01DFE2
S113038A17E60226FCBF26FC442D01DC21302C0191
S113039ABF26FCF6ECFF0400D1DF1330F9FF022676
S11303AAFC44C10061D8FCE20400F6BF26FCD74035
S11303BA08FC01DF07F508FCFC3405004009FC01D0
S11303CADF06F509FCFEB0FF400AFC01DF07F50A67
S11303DAFCFC130500400DFC01DF07F50DFCFC4392
S11303EA0300400EFC0161F8F50EFCD7A206FCE5F9
S11303FA08FCAF06FC320500FC5F0500F74361F810
S113040AE509FCAF06FC520AFC5F0500F74361F8F4
S113041AE50AFCAF06FC5214FC5F0500F74361F8D9
S113042AE50BFCAF06FC5232FC5F0500F74361F8AA
S113043AE50CFCAF06FC5264FC5F0500F74361F867
S113044AE50DFCAF06FC32E803FC5F0500F74361E7
S113045AF8E50EFCAF06FC4460EADC04F6BF06FCD1
S113046AD7D1DD0591DD08F1D7E15B017C01D78D98
S113047A02313A5C01EFF5D1DD0791DD1391DD0913
S113048AD73601FF719371A3D73601FF7192EFF644
S113049A3601FF719371A2D7D1DD0791DD1391DD86
S11304AA09D73601FF71B371C3D73601FF71B2EFB1
S11304BAF63601FF71B371C2D74C04DE085002D676
S11304CA127900FCD7F6D7F1731910FC001916FC3F
S11304DA0083634C06DFF1D7F1D510FCDF16D53A59
S11304EAFCDF08E0FE0E00E53AFCD75002FE0500E8
S11304FAF53AFCD7F073604C03DE0D634C06DE0854
S113050A601810FC191FFC00D7401EFC01DF0AF515
S113051A1EFCF6BF38FCF510FC8F10FC9F16FC8FEE
S113052A16FCEC810400306400D7E1FCC30400BF6C
S113053A1CFC446500DC19D51EFCDF14E60238FCF9
S113054ABF38FC44C800DC07F6BF38FCE51EFCD7FC
S108055AF6BF38FCD7D8
S113055F14F64315DD2261DD717BFACFE80080BE0E
S113056FF013BEF6F6BEF2BEF4CFE800818FE800BA
S10C057F3103FAAFE00061CDD7AD
S9030000FC

View File

@ -1,110 +0,0 @@
S00E00004D313220202020206D6F7451
S1130000CE0000000000000000000000000000001E
S113001000000000000000000000000000000000DC
S11300205E017801000000002801000000000000CB
S113003000000000000000000000000000000000BC
S113004000000000000000000000000000000000AC
S1130050000000000000000000000000000000009C
S1130060000000000000000000000000000000008C
S1130070000000000000000000000000000000007C
S1130082000000000000000000000000000000006A
S1130092000000000000000000000000000000005A
S10700C07A47E00493
S10D00C4000000000000000000002E
S11300CECBF820FE3048FCFC7A0100FCF30100362C
S11300DE00FC3027FCEF04CC0000A747DFF93620E4
S11300EEFE3020FEEF04CC0000A747DFF9410032BA
S11300FE2000EF08B3114982004828FCF643DFF4D0
S113010E4100320000EF08B3114980004820FEF68A
S113011E43DFF4FCBE0100F6EFFEC1C3C5C78EFD7E
S113012E708EFCC18E31D1DD1291DD18CE3101C03D
S113013E9EFC609EFDC6C4C2C061FC3002FCFC760F
S113014E0200EFE83000FCFC760200CE3100EFDF57
S113015EC1C3C5C78EFD708EFCC1FC590400C09E80
S10F016EFC609EFDC6C4C2C061FC61FCC4
S113017A16C80300AEF82761D339315E12F643DD9F
S113018A27BBBC02BC04BC06BC08BC0ABC0CBC0E23
S113019ABC10BC12BC14BC16BC18BC1ABC1CBC1EB9
S11301AA3704200037B3EFD6AEF847DD06F6BBA70F
S11301BAA7EFF5D7717AFAFC470300FC610300FC48
S11301CA1C0400EFFA717AFAD7CF770002FC09020D
S11301DA00FCF80100FC0C0200FC220200FC7D0277
S11301EA00FC3C0300F57800D7717BFAEFDB36A1FB
S11301FAFFCEA00071F2714BA4F5F3007183D78E80
S113020AA8D7343400CD010ECA0000CA2DE0CA4270
S113021A04CE21E1CE22FFD730100004E0001634C8
S113022A100071D2CE3000712AE6712BE2712AEEE7
S113023A712AEA51036F22FF9E22CE3008CE32A0E1
S113024ACA0000CA01FFCA0200CE3101710A30D7BE
S113025A712BE2712BE6717A30D7717B30712AE601
S113026A712BE2D7710A30D7710B30D714AD1E3116
S113027A6EB9D734F00036F000F67182BAC6300F80
S113028A0ABAC4716AE5716BE1717AE5717BE1714D
S113029A3AE5713BE1710AE6710BE2711AE6711BE8
S11302AAE2714AE5714BE1716AED716AE9717AEDBD
S11302BA717AE9F6BAA0C918BF5DAAC8085CFE0833
S11302CABAC8AACA085CFE08BACAF6BAA2C91ABF48
S11302DA5DAACE085CFD08BACEAACC085CFD08BAB1
S11302EACCAAC8085CFD08BAC8AACA085CFD08BA40
S11302FACAD734B201716BE1716BE5A9086C0108C4
S113030AB9D734B401A9086C0108B9716AE5716BEB
S113031AE1D734B201717BE1717BE5A9086C02086B
S113032AB9D734B401A9086C0208B9717AE5717BAA
S113033AE1D7710AE4710BE0D7CEABACD7FCFC026F
S113034A00FC5A0200FC6E0200FC1C0300F1FCE4EF
S113035A0400F1EC050500EC340500D1DD0491DD5F
S113036A07D7E0F1EC4505005002EFF7D1DD04911F
S113037A61E8D7F6EC450500F1FCCE04004C01DF38
S113038A37D52AFCDF32E60234FCBF34FC443D0094
S113039ADC1EE52AFC303C00BF34FCD528FCDF090E
S11303AAF1FEB7FFE528FCEF07E1FEAEFFF528FCF6
S11303BAF0E1FC450500EF44D1DF41402AFC01DFAE
S11303CA04F1FEA7FFAF34FC443C00DE28F743DD0A
S11303DA24D506FCDF06CF06FCC8EF19E1D529FCB3
S11303EADF0AE0FC450500E529FCEF095002FC455B
S11303FA0500F529FCF52AFCF6BF34FC8F06FCD16E
S113040ADD04919F06FC8F07FCD161F8D7919F0701
S113041AFCD7400AFC01DF07F50AFCFC6806004029
S113042A0BFC01DF06F50BFCFE4DFF400CFC01DF63
S113043A07F50CFCFC420600400FFC01DF07F50F30
S113044AFCFC4303004010FC0161F8F510FCD7A240
S113045A08FCE50AFCAF08FC320500FC960600F726
S113046A4361F8E50BFCAF08FC520AFC960600F758
S113047A4361F8E50CFCAF08FC5214FC960600F73D
S113048A4361F8E50DFCAF08FC5232FC960600F70E
S113049A4361F8E50EFCAF08FC5264FC960600F7CB
S11304AA4361F8E50FFCAF08FC32E803FC9606004A
S11304BAF74361F8E510FCAF08FC4460EADC04F693
S11304CABF08FCD7D1DD0591DD08F1D7E15B017CDA
S11304DA01D78D02313A5C01EFF5D1DD0791DD13C5
S11304EA91DD09D73601FF719371A3D73601FF71E4
S11304FA92EFF63601FF719371A2D7D1DD0791DD30
S113050A1391DD09D73601FF71B371C3D73601FFE1
S113051A71B2EFF63601FF71B371C2D74C04DE082B
S113052A5002D6127900FCD7F6D7F1731912FC00DF
S113053A1918FC0083634C06DFF1D773604C03DEA1
S113054A0D634C06DE08601812FC1921FC00D78FD3
S113055A12FCD1DD2491DD2891DF5D8F21FCD1DDF0
S113056A5191DF544020FC01DF4EF520FCF6BF46D2
S113057AFCF519FCF518FCEF23F518FCF519FCD762
S113058A8F21FCD1DD1B91DF2F4020FC01DF29F5EF
S113059A20FCF6BF46FCF518FCF519FCCF21FC0239
S11305AAD7E518FCF519FCE521FCF520FCF6BF4655
S11305BAFCD7CF18FC02EFECD78F13FC91DD219105
S11305CADF588F22FCD1DD6691DF4F4020FC01DF2A
S11305DA66F520FCF6BF46FCF519FCF518FCEF4954
S11305EA8F22FCD1DD1E91DD2D91DF4B4020FC01D1
S11305FADF45F520FCF6BF46FCF518FCF519FCCFDF
S113060A22FC03D7CF18FC02F519FCF520FCF6BF2F
S113061A46FCE522FCD74020FC01DF1BF520FCF652
S113062ABF46FCF518FCE519FCCF22FC02D7CF190A
S113063AFC02F518FCEFD4D7D513FCDF05FE0FFF37
S113064AEF03FE74FF8F18FCFCE404008F19FCEC22
S113065A050500D518FC306E0061E85032D7E1FC7C
S113066A260500BF1EFCFEEAFF421EFCDE19D52049
S113067AFCDF14E60246FCBF46FC44C800DC07F66D
S10F068ABF46FCE520FCD7F6BF46FCD7B9
S113069614F64315DD2261DD717BFACFE80080BED6
S11306A6F013BEF6F6BEF2BEF4CFE800818FE80082
S10C06B63103FAAFE00061CDD775
S9030000FC

View File

@ -1,110 +0,0 @@
S00E00004D313220202020206D6F7451
S1130000CE0000000000000000000000000000001E
S113001000000000000000000000000000000000DC
S11300205E017801000000002801000000000000CB
S113003000000000000000000000000000000000BC
S113004000000000000000000000000000000000AC
S1130050000000000000000000000000000000009C
S1130060000000000000000000000000000000008C
S1130070000000000000000000000000000000007C
S1130082000000000000000000000000000000006A
S1130092000000000000000000000000000000005A
S10700C07A47E00493
S10D00C4000000000000000000002E
S11300CECBF820FE3048FCFC7A0100FCF30100362C
S11300DE00FC3027FCEF04CC0000A747DFF93620E4
S11300EEFE3020FEEF04CC0000A747DFF9410032BA
S11300FE2000EF08B3114982004828FCF643DFF4D0
S113010E4100320000EF08B3114980004820FEF68A
S113011E43DFF4FCBE0100F6EFFEC1C3C5C78EFD7E
S113012E708EFCC18E31D1DD1291DD18CE3101C03D
S113013E9EFC609EFDC6C4C2C061FC3002FCFC760F
S113014E0200EFE83000FCFC760200CE3100EFDF57
S113015EC1C3C5C78EFD708EFCC1FC590400C09E80
S10F016EFC609EFDC6C4C2C061FC61FCC4
S113017A16C80300AEF82761D339315E12F643DD9F
S113018A27BBBC02BC04BC06BC08BC0ABC0CBC0E23
S113019ABC10BC12BC14BC16BC18BC1ABC1CBC1EB9
S11301AA3704200037B3EFD6AEF847DD06F6BBA70F
S11301BAA7EFF5D7717AFAFC470300FC610300FC48
S11301CA1C0400EFFA717AFAD7CF770002FC09020D
S11301DA00FCF80100FC0C0200FC220200FC7D0277
S11301EA00FC3C0300F57800D7717BFAEFDB36A1FB
S11301FAFFCEA00071F2714BA4F5F3007183D78E80
S113020AA8D7343400CD010ECA0000CA2DE0CA4270
S113021A04CE21E1CE22FFD730100004E0001634C8
S113022A100071D2CE3000712AE6712BE2712AEEE7
S113023A712AEA51036F22FF9E22CE3008CE32A0E1
S113024ACA0000CA01FFCA0200CE3101710A30D7BE
S113025A712BE2712BE6717A30D7717B30712AE601
S113026A712BE2D7710A30D7710B30D714AD1E3116
S113027A6EB9D734F00036F000F67182BAC6300F80
S113028A0ABAC4716AE5716BE1717AE5717BE1714D
S113029A3AE5713BE1710AE6710BE2711AE6711BE8
S11302AAE2714AE5714BE1716AED716AE9717AEDBD
S11302BA717AE9F6BAA0C918BF5DAAC8085CFE0833
S11302CABAC8AACA085CFE08BACAF6BAA2C91ABF48
S11302DA5DAACE085CFD08BACEAACC085CFD08BAB1
S11302EACCAAC8085CFD08BAC8AACA085CFD08BA40
S11302FACAD734B201716BE1716BE5A9086C0108C4
S113030AB9D734B401A9086C0108B9716AE5716BEB
S113031AE1D734B201717BE1717BE5A9086C02086B
S113032AB9D734B401A9086C0208B9717AE5717BAA
S113033AE1D7710AE4710BE0D7CEABACD7FCFC026F
S113034A00FC5A0200FC6E0200FC1C0300F1FCE4EF
S113035A0400F1EC050500EC340500D1DD0491DD5F
S113036A07D7E0F1EC4505005002EFF7D1DD04911F
S113037A61E8D7F6EC450500F1FCCE04004C01DF38
S113038A37D52AFCDF32E60234FCBF34FC443D0094
S113039ADC1EE52AFC303C00BF34FCD528FCDF090E
S11303AAF1FEB7FFE528FCEF07E1FEAEFFF528FCF6
S11303BAF0E1FC450500EF44D1DF41402AFC01DFAE
S11303CA04F1FEA7FFAF34FC443C00DE28F743DD0A
S11303DA24D506FCDF06CF06FCC8EF19E1D529FCB3
S11303EADF0AE0FC450500E529FCEF095002FC455B
S11303FA0500F529FCF52AFCF6BF34FC8F06FCD16E
S113040ADD04919F06FC8F07FCD161F8D7919F0701
S113041AFCD7400AFC01DF07F50AFCFC6806004029
S113042A0BFC01DF06F50BFCFE4DFF400CFC01DF63
S113043A07F50CFCFC420600400FFC01DF07F50F30
S113044AFCFC4303004010FC0161F8F510FCD7A240
S113045A08FCE50AFCAF08FC320500FC960600F726
S113046A4361F8E50BFCAF08FC520AFC960600F758
S113047A4361F8E50CFCAF08FC5214FC960600F73D
S113048A4361F8E50DFCAF08FC5232FC960600F70E
S113049A4361F8E50EFCAF08FC5264FC960600F7CB
S11304AA4361F8E50FFCAF08FC32E803FC9606004A
S11304BAF74361F8E510FCAF08FC4460EADC04F693
S11304CABF08FCD7D1DD0591DD08F1D7E15B017CDA
S11304DA01D78D02313A5C01EFF5D1DD0791DD13C5
S11304EA91DD09D73601FF719371A3D73601FF71E4
S11304FA92EFF63601FF719371A2D7D1DD0791DD30
S113050A1391DD09D73601FF71B371C3D73601FFE1
S113051A71B2EFF63601FF71B371C2D74C04DE082B
S113052A5002D6127900FCD7F6D7F1731912FC00DF
S113053A1918FC0083634C06DFF1D773604C03DEA1
S113054A0D634C06DE08601812FC1921FC00D78FD3
S113055A12FCD1DD2491DD2891DF5D8F21FCD1DDF0
S113056A5191DF544020FC01DF4EF520FCF6BF46D2
S113057AFCF519FCF518FCEF23F518FCF519FCD762
S113058A8F21FCD1DD1B91DF2F4020FC01DF29F5EF
S113059A20FCF6BF46FCF518FCF519FCCF21FC0239
S11305AAD7E518FCF519FCE521FCF520FCF6BF4655
S11305BAFCD7CF18FC02EFECD78F13FC91DD219105
S11305CADF588F22FCD1DD6691DF4F4020FC01DF2A
S11305DA66F520FCF6BF46FCF519FCF518FCEF4954
S11305EA8F22FCD1DD1E91DD2D91DF4B4020FC01D1
S11305FADF45F520FCF6BF46FCF518FCF519FCCFDF
S113060A22FC03D7CF18FC02F519FCF520FCF6BF2F
S113061A46FCE522FCD74020FC01DF1BF520FCF652
S113062ABF46FCF518FCE519FCCF22FC02D7CF190A
S113063AFC02F518FCEFD4D7D513FCDF05FE0FFF37
S113064AEF03FE74FF8F18FCFCE404008F19FCEC22
S113065A050500D518FC306E0061E85050D7E1FC5E
S113066A260500BF1EFCFEEAFF421EFCDE19D52049
S113067AFCDF14E60246FCBF46FC44C800DC07F66D
S10F068ABF46FCE520FCD7F6BF46FCD7B9
S113069614F64315DD2261DD717BFACFE80080BED6
S11306A6F013BEF6F6BEF2BEF4CFE800818FE80082
S10C06B63103FAAFE00061CDD775
S9030000FC

View File

@ -1,2 +1 @@
SW0101:初版 SW0101:初版
SW0102:电机M1的堵转电流改为8A

View File

@ -23,11 +23,32 @@ void MotorValueInit(void)
} }
} }
void ToggleMotorState(void)
{
static uint8_t KeyMode1 = 0;
if(MotorState[0] != ACT_NOACT)
{
setMotorState(0,ACT_NOACT);
return;
}
if (KeyMode1 == 0)
{
setMotorState(0,ACT_XQ);
KeyMode1 = 1;
}
else
{
setMotorState(0,ACT_XH);
KeyMode1 = 0;
}
}
void setMotorState(uint8_t motorid,uint8_t act) void setMotorState(uint8_t motorid,uint8_t act)
{ {
if (act <= ACT_XH && motorid < 6) if (act <= ACT_XH && motorid < 6)
{ {
MotorState[motorid] = act; MotorState[motorid] = act;
act_step[motorid] = 0; act_step[motorid] = 0;
} }
@ -35,206 +56,29 @@ void setMotorState(uint8_t motorid,uint8_t act)
/*
20240106
M1正转6秒后M2电机正转M1最大运行时间15秒
M2反转8秒后M1电机反转M2最大运行时间17秒
20240111
M1正转2秒后M2电机正转M1最大运行时间15秒
M2反转5秒后M1电机反转M2最大运行时间17秒
*/
#define MOTOR_DELAY_TIME_8S (500)
#define MOTOR_DELAY_TIME_6S (200)
#define MOTOR_DELAY_TIME_15S (1500)
#define MOTOR_DELAY_TIME_17S (1700)
void MotorCtrl1(void)//10ms
{
switch (MotorState[0])
{
case ACT_NOACT:
MotorStateReal[MOTOR1] = ACT_NOACT;
MotorStateReal[MOTOR2] = ACT_NOACT;
//OC1flag = 0;
break;
case ACT_XQ://先1再2
switch (act_step[0])
{
case 0:
MotorStateReal[MOTOR1] = ACT_XQ;
MotorStateReal[MOTOR2] = ACT_NOACT;
act_step[0] = 1;
OC1flag = 0;
OC_Count1 = 0;
break;
case 1:
if (OC1flag == 1)
{
OC1flag = 0;
OC_Count1 = 0;
MotorStateReal[MOTOR1] = ACT_NOACT;
MotorStateReal[MOTOR2] = ACT_NOACT;
act_step[0] = 2;
}
break;
case 2:
break;
case 3:
break;
default:
break;
}
break;
case ACT_XH://先2再1
switch (act_step[0])
{
case 0:
MotorStateReal[MOTOR1] = ACT_XH;
MotorStateReal[MOTOR2] = ACT_NOACT;
act_step[0] = 1;
OC1flag = 0;
OC_Count1 = 0;
break;
case 1:
if (OC1flag == 1)
{
OC1flag = 0;
OC_Count1 = 0;
MotorStateReal[MOTOR2] = ACT_NOACT;
MotorStateReal[MOTOR1] = ACT_NOACT;
act_step[0] = 2;
}
break;
case 2:
break;
case 3:
break;
default:
break;
}
break;
default:
break;
}
}
void MotorCtrl2(void)//10ms
{
switch (MotorState[1])
{
case ACT_NOACT:
/* code */
break;
case ACT_XQ:
switch (act_step[1])
{
case 0:
MotorStateReal[MOTOR1] = ACT_XH;
MotorStateReal[MOTOR2] = ACT_NOACT;
OC1flag = 0;
OC_Count1 = 0;
act_step[1] = 1;
break;
case 1:
if (OC1flag == 1)
{
OC1flag = 0;
OC_Count1 = 0;
MotorStateReal[MOTOR1] = ACT_NOACT;
MotorStateReal[MOTOR2] = ACT_XQ;
act_step[1] = 2;
}
break;
case 2:
if (OC1flag == 1)
{
OC1flag = 0;
OC_Count1 = 0;
MotorStateReal[MOTOR1] = ACT_NOACT;
MotorStateReal[MOTOR2] = ACT_NOACT;
act_step[1] = 3;
}
break;
case 3:
break;
default:
break;
}
break;
case ACT_XH:
switch (act_step[1])
{
case 0:
MotorStateReal[MOTOR2] = ACT_XH;
MotorStateReal[MOTOR1] = ACT_NOACT;
OC1flag = 0;
OC_Count1 = 0;
act_step[1] = 1;
break;
case 1:
if (OC1flag == 1)
{
OC1flag = 0;
OC_Count1 = 0;
MotorStateReal[MOTOR2] = ACT_NOACT;
MotorStateReal[MOTOR1] = ACT_NOACT;
act_step[1] = 2;
}
break;
case 2:
break;
case 3:
break;
default:
break;
}
break;
default:
break;
}
}
void MotorCtrl(void)//10ms void MotorCtrl(void)//10ms
{ {
if (MotorState[1] == ACT_NOACT) if (OC1flag == 1)
{ {
MotorCtrl1(); OC1flag = 0;
} OC_Count1 = 0;
else MotorState[MOTOR1] = ACT_NOACT;
{
MotorCtrl2();
} }
MotorStateReal[MOTOR1] = MotorState[MOTOR1];
MOTOR1Ctrl(MotorStateReal[MOTOR1]); MOTOR1Ctrl(MotorStateReal[MOTOR1]);
MOTOR2Ctrl(MotorStateReal[MOTOR2]); //MOTOR2Ctrl(MotorStateReal[MOTOR2]);
//MOTOR1Ctrl(MotorState[MOTOR1]); //MOTOR1Ctrl(MotorState[MOTOR1]);
} }
uint16_t getOC_th(void) uint16_t getOC_th(void)
{ {
if (MotorStateReal[MOTOR1] != ACT_NOACT)
{ return 100U;
return 80U;
}
else
{
return 110U;
}
//return 50U;
} }

View File

@ -15,6 +15,6 @@ void MotorCtrl(void);
void MotorValueInit(void); void MotorValueInit(void);
void setMotorState(uint8_t motorid,uint8_t act); void setMotorState(uint8_t motorid,uint8_t act);
void CurrentDetecte(void); void CurrentDetecte(void);
void ToggleMotorState(void);
#endif #endif

View File

@ -64,66 +64,45 @@ void keyLogicRelease(uint8_t keyno)
} }
} }
#define KEY_DELAY_TIME 60
#define KEY_DELAY_TIME 6
#define KEY_LONG_TIME 300
#define KEY_SHORT_TIME 200
void keyScan(void)//5ms void keyScan(void)//5ms
{ {
static uint16_t keydelay[9]={0,0,0,0,0,0,0,0,0}; static uint16_t keydelay[9]={0,0,0,0,0,0,0,0,0};
static uint8_t keyflag[9]={0,0,0,0,0,0,0,0,0}; static uint8_t keyflag[9]={0,0,0,0,0,0,0,0,0};
static uint8_t keep_count[9]={0,0,0,0,0,0,0,0,0}; static uint8_t keep_count[9]={0,0,0,0,0,0,0,0,0};
static uint8_t KeyShort2Counter1,KeyShort2Counter2;
static uint8_t KeyMode1 = 0,KeyMode2 = 0;
uint8_t keyval,i; uint8_t keyval,i;
keyval = GetIOState(SIGID_KEY1); keyval = GetIOState(SIGID_KEY1);
if (keyval == 1 && keyflag[KEY1] == 0) if (keyval == 1 )
{ {
keydelay[KEY1]++; keydelay[KEY1]++;
if (keydelay[KEY1] > KEY_DELAY_TIME)//300ms if (keydelay[KEY1] > KEY_DELAY_TIME)//30ms
{ {
keyflag[KEY1] = 1;
keydelay[KEY1] = KEY_DELAY_TIME;
if (KeyMode1 == 0)
{
keyLogic(KEY1);
KeyMode1 = 1;
}
else
{
keyLogic(KEY2);
KeyMode1 = 0;
}
} }
setMotorState(1,ACT_NOACT); if (keydelay[KEY1] > KEY_LONG_TIME)//300ms
{
keydelay[KEY1] = KEY_LONG_TIME;
setMotorState(0,ACT_NOACT);
}
//setMotorState(0,ACT_NOACT);
} }
else if (keyval == 0) else if (keyval == 0)
{ {
if (keyflag[KEY1] == 1) if (keydelay[KEY1] > KEY_DELAY_TIME && keydelay[KEY1] < KEY_SHORT_TIME)
{ {
keyLogicRelease(KEY1); ToggleMotorState();
}
if (keydelay[KEY1] > 0 && keydelay[KEY1] < KEY_DELAY_TIME)
{
if (KeyShort2Counter1 == 0)//第一次按下
{
KeyShort2Counter1 = 200;//1S
}
else
{
if (KeyMode2 == 0)
{
setMotorState(1,ACT_XQ);
KeyMode2 = 1;
}
else
{
setMotorState(1,ACT_XH);
KeyMode2 = 0;
}
}
} }
keyflag[KEY1] = 0; keyflag[KEY1] = 0;
@ -131,15 +110,6 @@ void keyScan(void)//5ms
} }
if (KeyShort2Counter1 > 0)
{
KeyShort2Counter1--;
}
if (KeyShort2Counter2 > 0)
{
KeyShort2Counter2--;
}
} }