⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 利用SMALL RTOS51做的一个项目
💻 C
📖 第 1 页 / 共 4 页
字号:
															_Flag_DispChanged=1;
															Write728x(0x10,0x3F);
															Write728x(0x19,0xF0);
														}
														
													}
													
													_Flag_Beep=1;
												}
											}
											else
											{
												if(!_Flag_State_Error)
												{
													_Flag_DispSpeed=!_Flag_DispSpeed;

													if(!_Flag_DispSpeed)
													{
														DispNum(2,_ProducedPersent);
														_LedProduceSpeed=0;
														_LedProducedPersent=1;
				
													}
													else
													{
														_ProduceSpeed*=6;
														DispNum(2,_ProduceSpeed);
														_LedProduceSpeed=1;
														_LedProducedPersent=0;
				
													}
													
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	RESET			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(!_Flag_State_Error)
												{
													if(_Flag_SetupMode)
													{
														_TempValue=0;
														_Flag_DispChanged=1;
														_Flag_Beep=1;
													}
													else if(!_Flag_State_Producing)
													{
														for(i=0;i<12;i++)
														{
															Write728x(i,0xFF);
														}
															
														_CurrentValue=0;
														_TargetValue=0;
														_ProduceSpeed=0;
														DispNum(1,_CurrentValue);
														DispNum(0,_TargetValue);
														DispNum(2,_ProduceSpeed);
														_LedProduceSpeed=1;

														_Flag_Beep=1;
													}
													
												}
												
											}
											else
											{
												if(!_Flag_State_Error)
												{
													
													if(_Flag_State_TaskAccepted)
													{
														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_RESEND_REQUEST);
															_Sum+=CMD_RESEND_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_CounteEnable=0;
																_Flag_State_TaskAccepted=0;
		
															}
															else
																_Flag_RequestAccept=1;

															_Flag_Beep=1;
														}
													}
													else if(!_Flag_State_Producing)
													{
														for(i=0;i<12;i++)
														{
															Write728x(i,0xFF);
														}
															
														_CurrentValue=0;
														_TargetValue=0;
														_ProduceSpeed=0;
														DispNum(1,_CurrentValue);
														DispNum(0,_TargetValue);
														DispNum(2,_ProduceSpeed);
														_LedProduceSpeed=1;

														_Flag_Beep=1;
													}
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_0			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														//_TempValue+=0;
													}	
													
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_1			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=1;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}	
										else
											_Flag_Beep=1;
										break;
			case 	KEY_2			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=2;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_3			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=3;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_4			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=4;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_5			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=5;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_6			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=6;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_7			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=7;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_8			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=8;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			case 	KEY_9			:	if(!_Flag_KeyLock)
										{
											if(!_Flag_AutoMode)
											{
												if(_Flag_SetupMode)
												{
													if(!(_TempValue/100000))
													{
														_TempValue*=10;
														_TempValue+=9;
													}	
													_Flag_DispChanged=1;
													_Flag_Beep=1;
												}
											}
										}
										else
											_Flag_Beep=1;
										break;
			default					:	
										break;
		}
	}
}


/*********************************************************************************************************
** 函数名称: UserTickTimer
** 功能描述: 一个任务,后台执行函数
**
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: OSSemCreate(),DispStr(),OSWait(),DispClr(),OSSemPost(),
**
** 作 者: 龚树强
** 日 期: 2004年10月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

		void UserTickTimer(void)
{
	static uint8 ticks1;
	static uint8 ticks2;
	static uint8 ticks3;
	static uint8 ticks4;
	static uint8 ticks5;
	static uint8 ticks6;

	static uint16 psm;

	TF2=0;

	P3_3=1;
	P3_2=1;

	if(ticks1)
	{
		ticks1--;
	}
	else
	{
		ticks1=10;

	//	DispNum(1,_CurrentValue);

		if(_Flag_State_Error)
		{
			_Flag_StateError=1;
			_Flag_StateProducing=0;
			_Flag_StateIdle=0;
		}
		else if(_Flag_State_Producing)
		{
			_Flag_StateProducing=1;
			if(_IdleTimer)
			{
				_Flag_StateError=0;
				_Flag_StateIdle=0;
			}
			else
			{
				_Flag_StateError=1;
				_Flag_StateIdle=1;
			}
		}
		else
		{
			_Flag_StateError=0;
			_Flag_StateProducing=0;
			_Flag_StateIdle=1;
		}

		if(ticks2)
		{
			ticks2--;
		}
		else
		{
			ticks2=25;

			if(!_Flag_DispSpeed)
			{
				DispNum(2,_ProducedPersent);
			//	if(_Flag_AutoMode)
			//	{
			//		_LedProduceSpeed=0;
			//		_LedProducedPersent=1;
			//	}
			}
			else
			{
				if(ticks6)
				{
					ticks6--;
					psm+=_ProduceSpeed;
					_ProduceSpeed*=12;
					DispNum(2,_ProduceSpeed);
				}
				else
				{
					ticks6=12;
					DispNum(2,psm);
					psm=0;
				}
			//	if(_Flag_AutoMode)
			//	{
			//		_LedProduceSpeed=1;
			//		_LedProducedPersent=0;
			//	}
			}

			
			
			_ProduceSpeed=0;
		}

		if(ticks3)
		{
			ticks3--;
		}
		else
		{
			ticks3=3;
		
			_Flag_StateLedOn=!_Flag_StateLedOn;

			_LedStateError=_Flag_StateError&_Flag_StateLedOn;
			_LedStateProducing=_Flag_StateProducing&_Flag_StateLedOn;
			_LedStateIdle=_Flag_StateIdle&_Flag_StateLedOn;

		}

		if(ticks4)
		{
			ticks4--;
		}
		else
		{
			ticks4=3;
		
			
		}

		if(_Flag_DispChanged)
		{
			if(_Flag_SetupMode)
			{
				uint8 i;
				
				if(_Flag_Set)
				{
					for(i=0;i<6;i++)
					{
						Write728x(i,0xFF);
					}
	
					DispNum(0,_TempValue);
				}
				else
				{
					for(i=6;i<12;i++)
					{
						Write728x(i,0xFF);
					}
					if(_TempValue>_TargetValue)
						_TempValue/=10;
	
					DispNum(1,_TempValue);
				}
			}
			else
			{
				DispNum(3,_CurrentValue);
			
			}
			_Flag_DispChanged=0;
		}

		if(ticks5)
		{
			ticks5--;
		}
		else
		{
			ticks5=50;

			if(_IdleTimer&&_Flag_StateProducing)
			{
				_IdleTimer--;
			}
		
		}

		
	}

	if(_Flag_KeyPressed)
	{

		if(_KeyboardTimer)
		{
			_KeyboardTimer--;
		}
		else if(_KeyboardTimer==1)
		{
			_Flag_KeyPressed=0;
			OSQIntPost(CommandData,_KeyScanReg);		
			_KeyScanReg=0;
		}
			
	}

	
}


/**********************end****************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -