| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768 |
- /**************************** (C) COPYRIGHT 2015 Fortiortech shenzhen *****************************
- File Name : IRScan.c
- Author : Billy Long Fortiortech Market Dept
- Version : V1.0
- Date : 01/07/2015
- Description : This file contains main function used for Motor Control.
- ***************************************************************************************************
- All Rights Reserved
- **************************************************************************************************/
- /* Includes -------------------------------------------------------------------------------------*/
- #include <MyProject.h>
- #include <FU68xx_4_MCU.h>
- /* Private typedef ------------------------------------------------------------------------------*/
- /* Private define -------------------------------------------------------------------------------*/
- /* Private macro --------------------------------------------------------------------------------*/
- /* Private variables ----------------------------------------------------------------------------*/
- IRScan_TypeDef xdata IRScan;
- IRControl_TypeDef xdata IRControl;
- IRControl_AutoPowerDef AutoPowerState;
- LineControlSpeedDEF xdata LineSpeedState;
- uint8 NatureWinFlag = 0;
- /* Private function prototypes ------------------------------------------------------------------*/
- /* Private functions ----------------------------------------------------------------------------*/
- /* -------------------------------------------------------------------------------------------------
- Function Name : void IRInit(void)
- Description :
- Input : 无
- Output : 无
- -------------------------------------------------------------------------------------------------*/
- void IRInit(void)
- {
- IRControl.LEDONOFFStatus = 1;
- IRScan.BitValue = 0;
- IRScan.BitCnt = 0;
- IRScan.Bit0Cnt = 0;
- IRScan.ByteValue = 0;
- IRScan.UserCode = 0;
- IRScan.DataCode = 0;
- IRScan.IRReceiveFlag = 0;
- IRScan.CurrentUserCode = 0;
- IRScan.OldDataCodeMixTimes1 = 0;
- IRScan.OldDataCodeMixTimes0 = 0;
- IRScan.CurrentDataCode = 0;
- IRScan.DataCodeLengthCover = 1;
- IRScan.UserCodeLengthCover = 1;
- IRScan.DataCodeLengthCover = (IRScan.DataCodeLengthCover << (DataCodeLength)) - 1;
- IRScan.UserCodeLengthCover = (IRScan.UserCodeLengthCover << (UserCodeLength)) - 1;
- IRControl.FlagONOFF = 0;
- IRControl.FlagFR = 0;
- IRControl.FlagSpeed = 0;
- IRControl.TargetSpeed = 0;
- IRControl.ONOFFStatus = 0;
- IRControl.FlagNatureWind = 0;
- IRControl.FlagLED = 0;
- IRControl.FlagAutoPower = 0;
- IRControl.FlagUserCodeSave = 0;
- IRControl.FlagUserCodeSaveOFF = 0;
- IRControl.FlagUserCodeRead = 1; //上电读出一次UserCode
- IRControl.FlagLED1Protect = 0; //LED欠压过压保护标记
- IRControl.FlagLED2Protect = 0;
- IRScan.TempDataCode[0] = 0;
- IRScan.TempDataCode[1] = 0;
- IRScan.TempDataCode[2] = 0;
- IRScan.TempDataCode[3] = 0;
- IRScan.DataCodeNum = 0;
- IRScan.BYTE0 = 0;
- IRScan.BYTE1 = 0;
- IRScan.BYTE2 = 0;
- IRScan.BYTE3 = 0;
- IRScan.PID = 0;
- IRScan.B = 0;
- IRControl.NatureFlage = 0;
- IRScan.OverFlowStatus = 0;
- mcFRState.OldTargetSpeed = 1;
- mcFRState.FR = CCW;
- mcFRState.FlagFR = 0;
- mcFRState.FRStatus = 0;
- // Time.ReciveDelayFlage=0;
- // Time.ReciveDelayCount=0;
- // Time.PowerUpTimeCount=0;
- AutoPowerState.FlagAutoPower = 0;
- AutoPowerState.Timer10sec = 0;
- AutoPowerState.ShutDowntime = 0;
- AutoPowerState.CurrentTime = 0;
- #if (Motor_Speed_Control_Mode == SPEED_LOOP_CONTROL)
- {
- IRControl.SpeedLevel[0] = MOTOR_SPEED_LEVEL_0;
- IRControl.SpeedLevel[1] = MOTOR_SPEED_LEVEL_1;
- IRControl.SpeedLevel[2] = MOTOR_SPEED_LEVEL_2;
- IRControl.SpeedLevel[3] = MOTOR_SPEED_LEVEL_3;
- IRControl.SpeedLevel[4] = MOTOR_SPEED_LEVEL_4;
- IRControl.SpeedLevel[5] = MOTOR_SPEED_LEVEL_5;
- IRControl.SpeedLevel[6] = MOTOR_SPEED_LEVEL_6;
- }
- #elif (Motor_Speed_Control_Mode == POWER_LOOP_CONTROL)
- {
- IRControl.SpeedLevel[0] = MOTOR_POWER_LEVEL_0;
- IRControl.SpeedLevel[1] = MOTOR_POWER_LEVEL_1;
- IRControl.SpeedLevel[2] = MOTOR_POWER_LEVEL_2;
- IRControl.SpeedLevel[3] = MOTOR_POWER_LEVEL_3;
- IRControl.SpeedLevel[4] = MOTOR_POWER_LEVEL_4;
- IRControl.SpeedLevel[5] = MOTOR_POWER_LEVEL_5;
- IRControl.SpeedLevel[6] = MOTOR_POWER_LEVEL_6;
- }
- #endif
- LineSpeedState.TargetSpeed = 0;
- LineSpeedState.PreTargetSpeed = 0;
- }
- /* -------------------------------------------------------------------------------------------------
- Function Name : void IRValue(void)
- Description : 红外接收头解码
- Input : 无
- Output : 无
- -------------------------------------------------------------------------------------------------*/
- //void IRValue(void)
- //{
- // uint8 tempof1 = 0;
- // uint8 tempof2 = 0;
- //
- // if (IRScan.BitCnt == 0)
- // {
- // IRScan.Bit0Cnt = TIM3__DR;
- //
- // if ((IRScan.Bit0Cnt <= TempLeadCodeMax) && (IRScan.Bit0Cnt >= TempLeadCodeMin))
- // {
- // IRScan.BitCnt++;
- // }
- // }
- // else
- // {
- // IRScan.Bit0Cnt = TIM3__ARR - TIM3__DR;
- //
- // if ((IRScan.Bit0Cnt >= TempBitValue1Min) && (IRScan.Bit0Cnt <= TempBitValue1Max))
- // {
- // IRScan.BitValue = 1;
- // tempof1 = 0x00;
- // }
- // else if ((IRScan.Bit0Cnt >= TempBitValue0Min) && (IRScan.Bit0Cnt <= TempBitValue0Max))
- // {
- // IRScan.BitValue = 0;
- // tempof1 = 0x00;
- // }
- // else
- // {
- // tempof1 = 0xFF;
- // }
- //
- // if (tempof1 != 0xff)
- // {
- // if (IRScan.BitCnt <= UserCodeLength)
- // {
- // IRScan.ByteValue += (IRScan.BitValue << (UserCodeLength - IRScan.BitCnt));
- //
- // if (IRScan.BitCnt == UserCodeLength)
- // {
- // IRScan.UserCode = IRScan.ByteValue;
- // IRScan.ByteValue = 0;
- // }
- //
- // IRScan.BitCnt ++;
- // }
- // else
- // {
- // IRScan.ByteValue += (IRScan.BitValue << (DataCodeLength - (IRScan.BitCnt - UserCodeLength)));
- //
- // if (IRScan.BitCnt == AllCodeLength)
- // {
- // IRScan.DataCode = IRScan.ByteValue;
- // IRScan.ByteValue = 0;
- // IRScan.BitCnt = 0;
- //
- // // tempof2 = (uint8)IRScan.DataCode;
- // // tempof1 = IRScan.DataCode>>8;
- // // tempof1 = 0xff -tempof1-1;
- // // tempof1 = 0xff -tempof1;
- //
- // if (IRScan.UserCode == UserCodeDef)
- // {
- // IRScan.IRReceiveFlag = 1;
- // }
- // }
- // else
- // { IRScan.BitCnt ++; }
- // }
- // }
- // else
- // {
- // IRScan.ByteValue = 0;
- // IRScan.BitCnt = 0;
- // }
- // }
- //}
- /* -------------------------------------------------------------------------------------------------
- Function Name : void SetSpeed(uint8 SpeedLevel)
- Description : 速度设置
- Input : SpeedLevel:速度挡位
- Output : 无
- -------------------------------------------------------------------------------------------------*/
- void SetSpeed(uint8 SpeedLevel)
- {
- IRControl.TargetSpeed = SpeedLevel;
-
- if (!mcSpeedRamp.FlagONOFF)
- {
- mcSpeedRamp.FlagONOFF = 1;
- }
-
- IRControl.ONOFFStatus = 1;
- IRControl.FlagSpeed = 1;
- mcFRState.OldTargetSpeed = IRControl.TargetSpeed;
- NatureWinFlag = 0; //正反转切换后根据遥控档位启动
- IRControl.NatureFlage = 0;
- // SetBuzzer(1,1);
- }
- /* -------------------------------------------------------------------------------------------------
- Function Name : void SetAutoPower(uint16 Time)
- Description : 定时设置
- Input : Time:定时时长
- Output : 无
- -------------------------------------------------------------------------------------------------*/
- void SetAutoPower(uint16 Time)
- {
- IRControl.FlagAutoPower = 1;
- AutoPowerState.ShutDowntime = Time;
- }
- uint32 idata TempByteValue;
- uint16 buf1[32] = {0};
- uint8 k = 0;
- uint16 TIM4_DR_Temp = 0;
- uint16 TIM4_ARR_Temp = 0;
- ///*-------------------------------------------------------------------------------------------------
- // Function Name : void RFValue(void)
- // Description : RF接收头解码
- // Input : 无
- // Output : 无
- //-------------------------------------------------------------------------------------------------*/
- void IRValue(void)
- {
- static uint8 UserSavedStatus = 0;
- static uint8 UserSavedOffStatus = 0;
- static idata uint32 TempByteValueEff;
- static idata uint32 TempBitValue;
- static idata uint8 effect_value = 0;
- uint8 tempof1 = 0;
- TIM4_ARR_Temp = TIM4__ARR;
- TIM4_DR_Temp = TIM4__DR;
- IRScan.Bit0Cnt = TIM4_ARR_Temp - TIM4_DR_Temp;
-
- //读出高电平
- //两组遥控信号之间的低电平信号认为是第二组信号的起始信号,低电平长度6ms
- // if((TIM4_DR_Temp <= 15000)&&(TIM4_DR_Temp >= 12000)&&(IRScan.Bit0Cnt <= 2100)&&(IRScan.Bit0Cnt >= 1500))
- if ((TIM4_DR_Temp <= TempLeadCodeMax) && (TIM4_DR_Temp >= TempLeadCodeMin) && (IRScan.Bit0Cnt <= TempLeadCode0Max) && (IRScan.Bit0Cnt >= TempLeadCode0Min))
- {
- IRScan.BitCnt = 1;
- effect_value = 0;
- }
-
- if (IRScan.BitCnt == 1)
- {
- IRScan.BitCnt = 2;
- TempByteValue = 0;
- TempByteValueEff = 0;
- }
- else if (IRScan.BitCnt >= 2)
- {
- IRScan.Bit0Cnt = TIM4__DR;
-
- // buf1[k] = IRScan.Bit0Cnt;
- // if(++k == 32)
- // {
- // k = 0;
- // }
- if ((IRScan.Bit0Cnt >= TempBitValue1Min) && (IRScan.Bit0Cnt <= TempBitValue1Max))
- {
- //当前数据为1
- TempBitValue = 1;
- tempof1 = 0x00;
- }
- else if ((IRScan.Bit0Cnt >= TempBitValue0Min) && (IRScan.Bit0Cnt <= TempBitValue0Max))
- {
- //当前数据为0
- TempBitValue = 0;
- tempof1 = 0x00;
- }
- else
- {
- tempof1 = 0xff; //当前数据电平长度不符合要求
- }
-
- if (tempof1 != 0xff)
- {
- /****************************遥控解码部分**************/
- //存储有效数据至对应位
- TempByteValue += (TempBitValue << ((AllCodeLength - 1) - (IRScan.BitCnt - 2)));
- IRScan.BitCnt ++;
-
- //接收满24位数据时进行处理(数据长度实际为25位,最后一位在起始信号时读取)
- if ((IRScan.BitCnt - 2) == AllCodeLength)
- {
- IRScan.DataCode = (TempByteValue) & 0XFFFF;
- //存储当前遥控地址吗
- IRScan.UserCode = (TempByteValue >> 16) & 0XFFFF;
- TempByteValue = 0;
-
- if (IRScan.UserCode == 0x00ff)
- {
- if (IRScan.DataCode == 0x8877)
- {
- if (KeySpeed == 0) //处于关机状态按下该按键则以一档速度运行并短“滴”一声
- {
- KeySpeed = 1;
- SetBuzzer(1, 1);
- SetSpeed_LEDPin;
- }
- else //处于开机状态按下该按键则关机并长“滴”一声
- {
- KeySpeed = 0;
- SetBuzzer(5, 1);
- ResetSpeed_LEDPin;
- YaoTou_Flag = 0;
- ResetYaoTou_LEDPin;
- }
- }
- else if (IRScan.DataCode == 0x6897)//摇头
- {
- if (KeySpeed) //只有在主控电机运行时才开摇头
- {
- YaoTou_Flag ^= 1;
-
- if (YaoTou_Flag) //
- {
- SetBuzzer(1, 1);
- SetYaoTou_LEDPin;
- }
- else
- {
- SetBuzzer(1, 2);
- ResetYaoTou_LEDPin;
- }
- }
- }
- else if (IRScan.DataCode == 0x48b7)//加大风量并短“滴”一声
- {
- if (KeySpeed != 0)
- {
- if (KeySpeed < 3)
- { KeySpeed++; }
-
- SetBuzzer(1, 1);
- SetSpeed_LEDPin;
- }
- }
- else if (IRScan.DataCode == 0xa857)//减小风量并短“滴”一声
- {
- if (KeySpeed != 0)
- {
- if (KeySpeed > 1)
- { KeySpeed--; }
-
- SetSpeed_LEDPin;
- SetBuzzer(1, 1);
- }
- }
- }
- }
- }
- else
- {
- TempByteValue = 0;
- IRScan.BitCnt = 0;
- }
- }
- }
- /* -------------------------------------------------------------------------------------------------
- Function Name : void IRScanControl(void)
- Description : 遥控信号处理
- Input : 无
- Output : 无
- -------------------------------------------------------------------------------------------------*/
- void IRScanControl(void)
- {
- if (IRScan.IRReceiveFlag)
- {
- //Time.ReciveDelayFlage=1;
- if (IRScan.DataCode == IRFRCCW)
- { SetBuzzer(2, 2); }
- else
- { SetBuzzer(2, 1); }
-
- switch (IRScan.DataCode)
- {
- case IRALLOFF:
- {
- IRControl.ONOFFStatus = 0;
- IRControl.TargetSpeed = 0;
- IRControl.FlagSpeed = 1;
- mcSpeedRamp.FlagONOFF = 0;
- IRControl.NatureFlage = 0;
- //在反转过程中关机时退出反转状态
- mcFRState.FlagFR = 0;
- mcFRState.FRStatus = 0;
- NatureWinFlag = 0;
-
- if (IRControl.LEDONOFFStatus)
- {
- ResetLEDPin;
- IRControl.LEDONOFFStatus = 0;
- }
-
- break;
- }
-
- case IRONOFF:
- {
- if (mcSpeedRamp.FlagONOFF == 1)
- {
- IRControl.ONOFFStatus = 0;
- IRControl.TargetSpeed = 0;
- mcFRState.OldTargetSpeed = IRControl.TargetSpeed;
- mcSpeedRamp.FlagONOFF = 0;
- IRControl.NatureFlage = 0;
- //在反转过程中关机时退出反转状态
- mcFRState.FlagFR = 0;
- mcFRState.FRStatus = 0;
- IRControl.FlagSpeed = 1;
- NatureWinFlag = 0;
- }
-
- break;
- }
-
- case IRFRCCW:
- {
- if (mcFRState.FR == CCW)
- {
- if ((mcState == mcRun) || (mcState == mcStart))
- { IRControl.FlagFR = 1; }
- else if ((mcState == mcReady) || (mcState == mcFault))
- {
- mcFRState.FR = CW;
-
- if (IRControl.TargetSpeed == 0)
- { SetSpeed(3); }
- else
- { SetSpeed(IRControl.TargetSpeed); }
- }
- }
- else
- {
- IRControl.FlagFR = 0;
-
- if (!NatureWinFlag)
- {
- if (IRControl.TargetSpeed == 0)
- { SetSpeed(3); }
- else
- { SetSpeed(IRControl.TargetSpeed); }
- }
- else
- {
- }
- }
-
- break;
- }
-
- case IRFRCW:
- {
- if (mcFRState.FR == CW)
- {
- if ((mcState == mcRun) || (mcState == mcStart))
- { IRControl.FlagFR = 1; }
- else if ((mcState == mcReady) || (mcState == mcFault))
- {
- mcFRState.FR = CCW;
-
- if (IRControl.TargetSpeed == 0)
- { SetSpeed(3); }
- else
- { SetSpeed(IRControl.TargetSpeed); }
- }
- }
- else
- {
- IRControl.FlagFR = 0;
-
- if (!NatureWinFlag)
- {
- if (IRControl.TargetSpeed == 0)
- { SetSpeed(3); }
- else
- { SetSpeed(IRControl.TargetSpeed); }
- }
- else
- {
- }
- }
-
- break;
- }
-
- case IRLED:
- {
- IRControl.FlagLED = 1;
- break;
- }
-
- case IRSpeed1:
- {
- SetSpeed(1);
- break;
- }
-
- case IRSpeed2:
- {
- SetSpeed(2);
- break;
- }
-
- case IRSpeed3:
- {
- SetSpeed(3);
- break;
- }
-
- case IRSpeed4:
- {
- SetSpeed(4);
- break;
- }
-
- case IRSpeed5:
- {
- SetSpeed(5);
- break;
- }
-
- case IRSpeed6:
- {
- SetSpeed(6);
- break;
- }
-
- case IRAUTOPOWER1H:
- {
- SetAutoPower(360); //360*10s =3600s =1h
- break;
- }
-
- case IRAUTOPOWER2H:
- {
- SetAutoPower(720);
- break;
- }
-
- case IRAUTOPOWER4H:
- {
- SetAutoPower(1400);
- break;
- }
-
- case IRNatureWind:
- {
- if (!IRControl.ONOFFStatus)
- {
- IRControl.ONOFFStatus = 1;
- mcSpeedRamp.FlagONOFF = 1;
- }
-
- if (!NatureWinFlag)
- {
- // mcFRState.OldTargetSpeed = 1;
- // IRControl.TargetSpeed = mcFRState.OldTargetSpeed;
- IRControl.TargetSpeed = NatureWinCode[0];
- mcFRState.OldTargetSpeed = IRControl.TargetSpeed;
- IRControl.FlagSpeed = 1;
- IRControl.NatureFlage = 1;
- //IRControl.FlagSpeed = 1;
- NatureWinFlag = 1;
- }
-
- break;
- }
-
- default:
- break;
- }
-
- IRScan.IRReceiveFlag = 0;
- }
- }
- /* -------------------------------------------------------------------------------------------------
- Function Name : void AutoPowerControl(void)
- Description : 自动控制开关机
- Input : 无
- Output : 无
- -------------------------------------------------------------------------------------------------*/
- void AutoPowerControl(void)
- {
- if (IRControl.FlagAutoPower)
- {
- // if (AutoPowerState.FlagAutoPower)
- // {
- // AutoPowerState.FlagAutoPower = 0;
- // }
- // else
- // {
- AutoPowerState.FlagAutoPower = 1;
- // }
- AutoPowerState.Timer10sec = 0; //每次按遥控重新计时
- AutoPowerState.CurrentTime = 0;
- IRControl.FlagAutoPower = 0;
- }
-
- //自动关机
- if ((AutoPowerState.FlagAutoPower && IRControl.ONOFFStatus) || ( AutoPowerState.FlagAutoPower && IRControl.LEDONOFFStatus))
- {
- AutoPowerState.Timer10sec++;
-
- if (AutoPowerState.Timer10sec > 10000)
- {
- AutoPowerState.Timer10sec = 0;
- AutoPowerState.CurrentTime++;
-
- if (AutoPowerState.CurrentTime >= AutoPowerState.ShutDowntime)
- {
- // if(IRControl.ONOFFStatus)
- // {
- IRControl.ONOFFStatus = 0;
- mcFRState.OldTargetSpeed = 0;
- IRControl.TargetSpeed = 0;
- mcSpeedRamp.FlagONOFF = 0;
- // }
- // else
- // {
- // IRControl.ONOFFStatus =1;
- // PIControlTime = SPEED_LOOP_TIME;
- // IRControl.TargetSpeed = MOTOR_POWER_LEVEL_1;
- // }
- // IRControl.FlagONOFF = 1;
- // BZScan.FlagBZ = 1;
- IRControl.FlagSpeed = 1;
-
- if (IRControl.LEDONOFFStatus)
- {
- ResetLEDPin;
- IRControl.LEDONOFFStatus = 0;
- }
-
- AutoPowerState.CurrentTime = 0;
- AutoPowerState.FlagAutoPower = 0;
- }
- }
- }
- else
- {
- AutoPowerState.FlagAutoPower = 0;
- AutoPowerState.Timer10sec = 0;
- AutoPowerState.ShutDowntime = 0;
- AutoPowerState.CurrentTime = 0;
- }
- }
- /* -------------------------------------------------------------------------------------------------
- Function Name : uint8 GetUserCode(void)
- Description : LED显示,IO口电平变化实现
- Input : 无
- Output : 无
- -------------------------------------------------------------------------------------------------*/
- void LEDDisplay(void)
- {
- // static uint8 LEDDiaplayStatus = 0;
- if (IRControl.FlagLED)
- {
- if (IRControl.LEDONOFFStatus == 0)
- {
- SetLEDPin;
- // IRControl.ONOFFStatus=1;
- IRControl.LEDONOFFStatus = 1;
- }
- else
- {
- // IRControl.ONOFFStatus=0;
- ResetLEDPin;
- IRControl.LEDONOFFStatus = 0;
- }
-
- IRControl.FlagLED = 0;
- }
- }
- void IRONOFF_Control(void)
- {
- if ((mcSpeedRamp.TargetValue == 0) && (mcState != mcRun) && (mcState != mcStop))
- {
- //关机后堵转保护次数和缺相保护次数清零
- mcProtectTime.SecondStartTimes = 0;
- mcProtectTime.StallTimes = 0;
- mcProtectTime.LossPHTimes = 0;
- mcProtectTime.CurrentPretectTimes = 0;
- }
- }
- void NatureWind(void)
- {
- static uint16 NatureWindCnt = 0;
- static uint8 NatureWindStep = 0;
- static uint8 FlageAddorDelace = 0;
- // if ((!NatureWinFlag) || (IRControl.FlagFR) || (!IRControl.ONOFFStatus) || (mcState != mcRun))
- // {
- // NatureWindCnt = 0;
- // NatureWindStep = 0;
- // return;
- // }
- // else
- // {
- NatureWindCnt++;
- // }
- // IRControl.ONOFFStatus =1;
- // mcSpeedRamp.FlagONOFF = 1;
-
- if (NatureWindCnt > 5000)
- {
- NatureWindCnt = 0;
-
- if (FlageAddorDelace == 0)
- {
- if (NatureWindStep < 5)
- { NatureWindStep++; }
- else
- {
- NatureWindStep = 5;
- FlageAddorDelace = 1;
- }
-
- IRControl.TargetSpeed = NatureWinCode[NatureWindStep];
- IRControl.FlagSpeed = 1;
- }
- else if (FlageAddorDelace)
- {
- if (NatureWindStep > 0)
- { NatureWindStep--; }
- else
- {
- NatureWindStep = 0;
- FlageAddorDelace = 0;
- }
-
- IRControl.TargetSpeed = NatureWinCode[NatureWindStep];
- IRControl.FlagSpeed = 1;
- }
- }
- }
|