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

📄 nedu_drive_tch.c

📁 一个基于单片机的小型操作系统
💻 C
📖 第 1 页 / 共 2 页
字号:
				if(x>50&&x<80)
				{
					OS_ENTER_CRITICAL();
					Sub_Mode = TCH_K_6;				//6
					OS_EXIT_CRITICAL(); 
				}
				if(x>80&&x<110)
				{
					OS_ENTER_CRITICAL();
					Sub_Mode = TCH_K_7;				//7
					OS_EXIT_CRITICAL(); 
				}
				if(x>110&&x<140)
				{
					OS_ENTER_CRITICAL();
					Sub_Mode = TCH_K_8;				//8
					OS_EXIT_CRITICAL(); 
				}
				if(x>140&&x<170)
				{
					OS_ENTER_CRITICAL();
					Sub_Mode = TCH_K_9;				//9
					OS_EXIT_CRITICAL(); 
				}
				if(x>170&&x<200)
				{
					OS_ENTER_CRITICAL();
					Sub_Mode = TCH_K_0;				//0
					OS_EXIT_CRITICAL(); 
				}
			}
	Uart_Printf("\nSetRTCXY:x=%d\ty=%d\tKey=0x%x\tState=%d",x,y,Sub_Mode,state);
	//OSTimeDly(500);
	//} 
	return;
}
/*
**********************************************************************************************************************
*                       GETSETRECXY
*
* 作者:邹海英
*
* 时间:2007年7月9日
*
* 描述:确定显示系统日历子状态机坐标。
*
* 修改: (0709)去掉局部变量x,y.直接用GetTCHXY赋的值
*
* 参数:无
*
* 返回值:无
* 
***********************************************************************************************************************
*/
void GetSETRECXY(void)
{
	OS_CPU_SR  cpu_sr;
	//int x,y;
	//while(state != NORMAL)
	//{
	//TchScr_GetOSXY(&x, &y);
			if(x>12 && x<35)
			{ 
				if(y>140 && y<162)
				{				//用户敲击触摸屏上的“1”
				  	OS_ENTER_CRITICAL(); //关中断
					Sub_Mode = TCH_K_1; //赋值子模式
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>162 && y<185)
				{ 				//用户敲击触摸屏上的"Q"
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_Q;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>185 && y<208)
				{ 				 //用户敲击触摸屏上的A
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_A;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>208 && y<232)
				{  				//用户敲击触摸屏上的Z
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_Z;
					OS_EXIT_CRITICAL(); //开中断
				}
			}
			else if(x>35 && x<58)
			{
				if(y>140 && y<162)
				{ 				//用户敲击触摸屏上的2
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_2;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>162 && y<185)
				{  				//用户敲击触摸屏上的W
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_W;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>185 && y<208)
				{  				//用户敲击触摸屏上的S
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_S;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>208 && y<232)
				{ 				//用户敲击触摸屏上的X
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_X;
					OS_EXIT_CRITICAL(); //开中断
				}
			}
			else if(x>58 && x<81)
			{
				if(y>140 && y<162)
				{ 				//用户敲击触摸屏上的3
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_3;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>162 && y<185)
				{				 //用户敲击触摸屏上的E
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_E;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>185 && y<208)
				{ 				//用户敲击触摸屏上的D
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_D;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>208 && y<232)
				{ 				//用户敲击触摸屏上的C
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_C;
					OS_EXIT_CRITICAL(); //开中断
				}
			}
			else if(x>81 && x<105)
			{
				if(y>140 && y<162)
				{ 				//用户敲击触摸屏上的4
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_4;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>162 && y<185)
				{ 				//用户敲击触摸屏上的R
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_R;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>185 && y<208)
				{  				//用户敲击触摸屏上的F
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_F;
					OS_EXIT_CRITICAL();//开中断		    
				}
				else if(y>208 && y<232)
				{  				//用户敲击触摸屏上的V
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_V;
					OS_EXIT_CRITICAL();//开中断
				}
			}
			else if(x>105 && x<130)
			{
				if(y>140 && y<162)
				{  				//用户敲击触摸屏上的5
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_5;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>162 && y<185)
				{ 				//用户敲击触摸屏上的T
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_T;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>185 && y<208)
				{ 				//用户敲击触摸屏上的G
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_G;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{ 				//用户敲击触摸屏上的B
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_B;
					OS_EXIT_CRITICAL();//开中断
				}
			}					 
			else if(x>130 && x<154)
			{
				if(y>140 && y<162)
				{ 				//用户敲击触摸屏上的6
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_6;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>162 && y<185)
				{  				//用户敲击触摸屏上的Y
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_Y;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>185 && y<208)
				{  				//用户敲击触摸屏上的H
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_H;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{ 				//用户敲击触摸屏上的N
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_N;
					OS_EXIT_CRITICAL();//开中断
				}
			}
            else if(x>154 && x<178)
            {
				if(y>140 && y<162)
				{ 				 //用户敲击触摸屏上的7
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_7;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>162 && y<185)
				{				//用户敲击触摸屏上的U
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_U;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>185 && y<208)
				{				 //用户敲击触摸屏上的J
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_J;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{ 				//用户敲击触摸屏上的M
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_M;
					OS_EXIT_CRITICAL();//开中断
				}	
			}
			else if(x>178 && x<202)
			{
				if(y>140 && y<162)
				{ 				//用户敲击触摸屏上的8
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_8;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>162 && y<185)
				{ 				//用户敲击触摸屏上的I
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_I;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>185 && y<208)
				{  				//用户敲击触摸屏上的K
				    OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_K;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{  				//用户敲击触摸屏上的 ,	  
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_COMA;   
					OS_EXIT_CRITICAL();  //开中断
				}
			}
			else if(x>202 && x<226)
			{
				if(y>140 && y<162)
				{ 				//用户敲击触摸屏上的9
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_9;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>162 && y<185)
				{				 //用户敲击触摸屏上的O
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_O;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>185 && y<208)
				{				 //用户敲击触摸屏上的L
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_L;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{				//用户敲击触摸屏上的.
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_DOT;
					OS_EXIT_CRITICAL();//开中断
				}	
			}
			else if(x>226 && x<250)
			{
				if(y>140 && y<162)
				{ 				//用户敲击触摸屏上的0
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_0;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>162 && y<185)
				{  				//用户敲击触摸屏上的P
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_P;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>185 && y<208)
				{ 				 //用户敲击触摸屏上的=
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_EQU;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{   			 //用户敲击触摸屏上的@
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_AT;
					OS_EXIT_CRITICAL();//开中断
				}
			}							    						
			else if(x>250 && x<273)
			{
				if(y>140 && y<162)
				{  				//用户敲击触摸屏上的+
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_PLUS;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>162 && y<185)
				{ 				 //用户敲击触摸屏上的-
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_MINUS;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>185 && y<208)
				{  				 //用户敲击触摸屏上的*
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_STAR;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{  				//用户敲击触摸屏上的 /
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_SLASH;
					OS_EXIT_CRITICAL();//开中断
				} 
			}
			else if(x>273 && x<320)
			{
				if(y>140 && y<162)
				{  				//用户敲击触摸屏上的Esc
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_Esc;
					OS_EXIT_CRITICAL(); //开中断
					return;
				}
				else if(y>162 && y<185)
				{ 				 // 用户敲击触摸屏上的DEL
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_Del;
					OS_EXIT_CRITICAL(); //开中断
				}
				else if(y>185 && y<208)
				{   			 //用户敲击触摸屏上的Enter
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_ENTER;
					OS_EXIT_CRITICAL();//开中断
				}
				else if(y>208 && y<232)
				{   			// 用户敲击触摸屏上的Sft
					OS_ENTER_CRITICAL();//关中断
					Sub_Mode = TCH_K_Sft;
					OS_EXIT_CRITICAL();//开中断
				}
			}
															//1122
			if(x>60&&x<280)
			{
				if(y>40&&y<60)
				{
					OS_ENTER_CRITICAL(); //关中断
					Sub_Mode = TCH_K_Line1;//赋值子模式
					OS_EXIT_CRITICAL(); 	//开中断	        
				}
				else  if(y>60&& y<82)
				{
					OS_ENTER_CRITICAL(); //关中断
					Sub_Mode = TCH_K_Line2; 	//赋值子模式
					OS_EXIT_CRITICAL(); 	//开中断
				}
				else   if(y>82&&y<105)
				{
					OS_ENTER_CRITICAL(); 	//关中断
					Sub_Mode = TCH_K_Line3; //赋值子模式
					OS_EXIT_CRITICAL(); 	//开中断
				}
				else   if(y>105&&y<125)
				{
					OS_ENTER_CRITICAL(); //关中断
					Sub_Mode = TCH_K_Line4;//赋值子模式
			    	OS_EXIT_CRITICAL(); 	//开中断
				}
			}	//2211
	Uart_Printf("\nSetRECXY:x=%d\ty=%d\tKey=0x%x\tState=%d",x,y,Sub_Mode,state);
	//OSTimeDly(500);
	//} 
	return;
}
//end of nedu_drive_tch


/*
**********************************************************************************************************************
*                       GetTCHXY
*
* 作者:胡仲华 曹攀
*
* 时间:2007年7月7日
*
* 描述:得到接触屏的x,y.判断state状态并处理
*
* 参数:无
*
* 返回值:无
* 
***********************************************************************************************************************
*/

void GetTCHXY(void)
{
	OS_CPU_SR  cpu_sr;
	U32 k1;
	//int x,y;
	
	
	TchScr_GetOSXY(&x,&y);
	switch(state)
	{
		case NORMAL:			//正常状态
			k1=GetMainXY();
			//OSTimeDly(200);
			OS_ENTER_CRITICAL();
			state = (U8)k1;
			OS_EXIT_CRITICAL();
			break;	
		case DISTIME:			//显示时间状态
			GetTimeXY();
		    break;
		case DISDATE:			//显示日期
			GetDateXY();
		    break;
		case DISREC:			//显示记录状态
			GetRECXY();
			break;
		case SETREC:			//添加记录状态
			GetSETRECXY();
			break;
		case SETRTC:			//查看日历状态
			GetSETRTCXY();
			break;
		case NOREC:				//无记录状态
			GetNoRecordXY();
			break;
		default:
			
		    break;
		    
		//OS_ENTER_CRITICAL();
		//state = NORMAL;
		//OS_EXIT_CRITICAL();
		Uart_Printf("\n State  %d",state);
	}
	
	
}

⌨️ 快捷键说明

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