📄 main.c
字号:
for(;;)
{
if(_Flag_Beep)
{
LED_NUM_OFF();
OSWait(K_TMO, OS_TICKS_PER_SEC/10 );
LED_NUM_ON();
if(_Flag_KeyLock)
{
_Beep=1;
OSWait(K_TMO, OS_TICKS_PER_SEC/10 );
_Beep=0;
LED_NUM_OFF();
OSWait(K_TMO, OS_TICKS_PER_SEC/10 );
_Beep=1;
LED_NUM_ON();
OSWait(K_TMO, OS_TICKS_PER_SEC/10 );
_Beep=0;
}
else
{
_Beep=1;
OSWait(K_TMO, OS_TICKS_PER_SEC/10 );
_Beep=0;
}
if(!_Flag_AutoMode)
{
LED_NUM_OFF();
}
_Flag_Beep=0;
}
EA=0;
EX1=1;
IE1=0;
EA=1;
OSQPend(&temp,CommandData,0); /* 接收一个命令 */
EA=0;
EX1=0;
IE1=0;
EA=1;
KEY_RESOLVE:
switch(temp)
{
case MODE_SWITCH : if(!_Flag_KeyLock)
{
if((!_Flag_State_TaskAccepted)&&(!_Flag_State_Producing))
{
_Flag_AutoMode=!_Flag_AutoMode;
_TempValue=0;
for(temp=0;temp<12;temp++)
{
Write728x(temp,0xFF);
}
_TargetValue=0;
DispNum(0,_TargetValue);
_CurrentValue=0;
DispNum(1,_CurrentValue);
_ProducedPersent=0;
DispNum(2,_ProducedPersent);
_Flag_CounteEnable=0;
_Flag_State_TaskAccepted=0;
_Flag_State_Producing=0;
_Flag_State_Finish=0;
_Flag_SetupMode=0;
if(_Flag_AutoMode)
{
ES=1;
TI=0;
RI=0;
REN=1;
DispNum(2,_ProduceSpeed);
}
else
{
ES=0;
REN=0;
DispNum(2,_ProduceSpeed);
_Flag_DispSpeed=1;
_LedProduceSpeed=1;
_LedProducedPersent=0;
}
Write728x(0x10,0xFF);
Write728x(0x19,0xFF);
_TargetValue=0;
_CurrentValue=0;
_ProducedPersent=0;
_Flag_State_Error=FALSE;
_Flag_State_Producing=FALSE;
_Flag_State_Finish=FALSE;
_Flag_State_TaskAccepted=FALSE;
_Flag_DispChanged=1;
_Flag_Beep=1;
_ProduceSpeed=0;
}
}
else
_Flag_Beep=1;
break;
case SWITCH_LINE : if(!_Flag_KeyLock)
{
if(_Flag_AutoMode)
{
if(!_Flag_State_Error)
{
if(_Flag_State_Producing)
{
//OSSemPend(SEM_SendBuffer,0);
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum=LOCOAL_ADDR;
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum+=LOCOAL_ADDR;
OSQIntPost(SerialOutData,CMD_SWITCH_LINE);
_Sum+=CMD_SWITCH_LINE;
temp=_CurrentValue>>16;
_Sum+=temp;
OSQIntPost(SerialOutData,temp);
temp=_CurrentValue>>8;
_Sum+=temp;
OSQIntPost(SerialOutData,temp);
temp=_CurrentValue;
_Sum+=temp;
OSQIntPost(SerialOutData,temp);
//EX1=0;
OSQIntPost(SerialOutData,_Sum);
//EX1=1;
_Flag_RequestAccept=0;
FeedBack();
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
if(!_Flag_RequestAccept)
{
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
}
if(_Flag_RequestAccept)
{
_Flag_CounteEnable=FALSE;
_Flag_State_Producing=FALSE;
_Flag_State_TaskAccepted=FALSE;
_Flag_State_Finish=TRUE;
_ProduceSpeed=0;
_Flag_Beep=1;
}
else
_Flag_RequestAccept=1;
}
}
}
}
else
_Flag_Beep=1;
break;
case KEY_LOCK : for(i=0;i<15;i++)
{
OSWait(K_TMO, OS_TICKS_PER_SEC/10 );
EX1=1;
j=OSQPend(&temp,CommandData,10);
if(j!=OS_Q_TMO)
{
if(temp==KEY_LOCK)
{
if(i==14)
{
_Flag_KeyLock=!_Flag_KeyLock;
_Flag_Beep=1;
break;
}
}
else
break;
}
else
break;
}
break;
case ACTION : if(!_Flag_KeyLock)
{
if(!_Flag_SetupMode)
{
if(_Flag_AutoMode)
{
if(_Flag_State_Error)
{
// OSSemPend(SEM_SendBuffer,0);
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum=LOCOAL_ADDR;
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum+=LOCOAL_ADDR;
OSQIntPost(SerialOutData,CMD_START);
_Sum+=CMD_START;
OSQIntPost(SerialOutData,0);
OSQIntPost(SerialOutData,0);
OSQIntPost(SerialOutData,0);
OSQIntPost(SerialOutData,_Sum);
_Flag_RequestAccept=0;
FeedBack();
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
if(!_Flag_RequestAccept)
{
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
}
if(_Flag_RequestAccept)
{
_Flag_State_Error=0;
_Flag_Beep=1;
}
else
_Flag_RequestAccept=1;
}
else if(!_Flag_State_Error)
{
OSWait(K_TMO,OS_TICKS_PER_SEC/2);
_Flag_State_Error=1;
}
}
else if(!_Flag_AutoMode)
{
_Flag_State_Error=!_Flag_State_Error;
}
if(_Flag_State_Error)
{
_Flag_CounteEnable=0;
Write728x(0x10,0x00);
Write728x(0x19,0x00);
EX0=0;
}
else
{
_Flag_CounteEnable=1;
Write728x(0x10,0xFF);
Write728x(0x19,0xFF);
EX0=1;
}
}
}
_Flag_Beep=1;
break;
case REQUEST : if(!_Flag_KeyLock)
{
if(_Flag_AutoMode)
{
if(!_Flag_State_Error)
{
if(!_Flag_State_Producing)
{
if(!_Flag_State_TaskAccepted)
{
// OSSemPend(SEM_SendBuffer,0);
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum=LOCOAL_ADDR;
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum+=LOCOAL_ADDR;
OSQIntPost(SerialOutData,CMD_REQUEST);
_Sum+=CMD_REQUEST;
OSQIntPost(SerialOutData,0);
OSQIntPost(SerialOutData,0);
OSQIntPost(SerialOutData,0);
OSQIntPost(SerialOutData,_Sum);
_Flag_RequestAccept=0;
FeedBack();
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
if(!_Flag_RequestAccept)
{
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
}
if(_Flag_RequestAccept)
{
_Flag_Beep=1;
}
else
_Flag_RequestAccept=1;
}
}
}
}
}
else
_Flag_Beep=1;
break;
case ENTER : if(!_Flag_KeyLock)
{
if(!_Flag_AutoMode)
{
if(!_Flag_State_Error)
{
if(_Flag_SetupMode)
{
_Flag_SetupMode=0;
_Flag_CounteEnable=1;
_Flag_State_Finish=0;
_Flag_State_Producing=0;
if(_Flag_Set)
{
_TargetValue=_TempValue;
}
else
{
_CurrentValue=_TempValue;
}
Write728x(0x10,0xFF);
Write728x(0x19,0xFF);
_Flag_DispChanged=1;
_Flag_Beep=1;
}
else
{
if(_Flag_State_Producing)
{
_Flag_CounteEnable=0;
_Flag_State_Producing=0;
_Flag_State_Finish=1;
_Flag_State_TaskAccepted=0;
// _CurrentValue=_TargetValue;
_Flag_DispChanged=1;
if(_Flag_DispSpeed)
{
_ProduceSpeed=0;
DispNum(2,_ProduceSpeed);
}
_Flag_Beep=1;
}
}
}
}
else
{
if(!_Flag_State_Error)
{
if(_Flag_State_Producing)
{
//OSSemPend(SEM_SendBuffer,0);
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum=LOCOAL_ADDR;
OSQIntPost(SerialOutData,LOCOAL_ADDR);
_Sum+=LOCOAL_ADDR;
OSQIntPost(SerialOutData,CMD_FINISHED);
_Sum+=CMD_FINISHED;
temp=_CurrentValue>>16;
_Sum+=temp;
OSQIntPost(SerialOutData,temp);
temp=_CurrentValue>>8;
_Sum+=temp;
OSQIntPost(SerialOutData,temp);
temp=_CurrentValue;
_Sum+=temp;
OSQIntPost(SerialOutData,temp);
//EX1=0;
OSQIntPost(SerialOutData,_Sum);
//EX1=1;
_Flag_RequestAccept=0;
FeedBack();
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
if(!_Flag_RequestAccept)
{
OSWait(K_SIG|K_TMO,OS_TICKS_PER_SEC*5);
}
if(_Flag_RequestAccept)
{
_Flag_CounteEnable=0;
_Flag_State_Producing=0;
_Flag_State_TaskAccepted=0;
_Flag_State_Finish=1;
if(_Flag_DispSpeed)
{
_ProduceSpeed=0;
DispNum(2,_ProduceSpeed);
}
// _CurrentValue=_TargetValue;
_Flag_DispChanged=1;
_Flag_Beep=1;
}
else
_Flag_RequestAccept=1;
}
}
}
}
else
_Flag_Beep=1;
break;
case SETUP : if(!_Flag_KeyLock)
{
if(!_Flag_AutoMode)
{
if((!_Flag_State_Error)&&(!_Flag_State_Producing))
{
if(!_Flag_SetupMode)
{
_Flag_SetupMode=1;
_CurrentValue=0;
_TargetValue=0;
_TempValue=_TargetValue;
_Flag_Set=1;
_ProduceSpeed=0;
for(i=0;i<12;i++)
{
Write728x(i,0xFF);
}
DispNum(0,_TargetValue);
DispNum(1,_CurrentValue);
_Flag_DispChanged=1;
Write728x(0x10,0xC0);
Write728x(0x19,0xFF);
}
else
{
_Flag_Set=!_Flag_Set;
if(_Flag_Set)
{
_CurrentValue=_TempValue;
_TempValue=_TargetValue;
DispNum(0,_TargetValue);
_Flag_DispChanged=1;
Write728x(0x10,0xC0);
Write728x(0x19,0xFF);
}
else
{
_TargetValue=_TempValue;
_TempValue=_CurrentValue;
DispNum(1,_CurrentValue);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -