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

📄 test.c

📁 实现交通灯的定时闪烁并依据等待车辆的数量来实现红绿灯的转换。
💻 C
📖 第 1 页 / 共 2 页
字号:
PC_DispChar(27,5,f,DISP_BGND_BLACK+DISP_FGND_WHITE );
		PC_DispStr(1,4,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );     //清除第4行的红色  
PC_DispChar(33,5,f,DISP_BGND_BLACK+DISP_FGND_WHITE );
        PC_DispStr(35,4,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );    //清除第4行的红色   
        
		PC_DispChar(1,8,e,DISP_BGND_BLACK+DISP_FGND_RED );       //显示停止标志
PC_DispChar(30,3,f,DISP_BGND_BLACK+DISP_FGND_RED );
	
		PC_DispStr(2,8,s82,DISP_BGND_BLACK+DISP_FGND_RED );      //显示第八行红色     
		PC_DispChar(35,8,e,DISP_BGND_BLACK+DISP_FGND_RED );      //显示停止标志
PC_DispChar(30,7,f,DISP_BGND_BLACK+DISP_FGND_RED );
        PC_DispStr(36,8,s836,DISP_BGND_BLACK+DISP_FGND_RED );    //显示第八行红色   

PC_DispChar(30,2,f,DISP_BGND_BLACK+DISP_FGND_WHITE );
	
        PC_DispStr(1,6,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );      //清除第6行的绿色  
PC_DispChar(30,8,f,DISP_BGND_BLACK+DISP_FGND_WHITE );
        PC_DispStr(35,6,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );     //清除第6行的绿

		}
		
       
        OSTimeDlyHMSM(0,0,20,0);		                           //等待20秒
	    OSMutexPost(stop_Mutex);                                   //释放信号
          
            
	    
	}
   
        
 }

/************************任务YouTask************************************************************************************************/
void  youTask (void *pdata)                         
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SR  cpu_sr;
#endif
    pdata = pdata;     
    
	for (;;) {
  
                                                                                                 

        OSMutexPend(stop_Mutex,0,&err);                        //请求信号
		if(err==OS_NO_ERR)                                     //请求信号成功       
		{
PC_DispChar(30,3,f,DISP_BGND_BLACK+DISP_FGND_WHITE );
		PC_DispStr(1,8,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );       //清除第8行红色
PC_DispChar(30,7,f,DISP_BGND_BLACK+DISP_FGND_WHITE );
        PC_DispStr(35,8,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );      //清除第8行红色

PC_DispChar(26,5,f,DISP_BGND_BLACK+DISP_FGND_WHITE );	
        PC_DispStr(1,2,s5,DISP_BGND_BLACK+DISP_FGND_GREEN );       //清除第2行绿色
PC_DispChar(34,5,f,DISP_BGND_BLACK+DISP_FGND_WHITE );
		PC_DispStr(35,2,s5,DISP_BGND_BLACK+DISP_FGND_GREEN );      //清除第2行绿色


        PC_DispChar(1,6,b,DISP_BGND_BLACK+DISP_FGND_GREEN );       //显示向上箭头
PC_DispChar(30,2,f,DISP_BGND_BLACK+DISP_FGND_GREEN );
	
		PC_DispStr(2,6,s62,DISP_BGND_BLACK+DISP_FGND_GREEN );      //显示绿色
	     
        PC_DispChar(35,6,c,DISP_BGND_BLACK+DISP_FGND_GREEN );      //显示向下箭头 
PC_DispChar(30,8,f,DISP_BGND_BLACK+DISP_FGND_GREEN );
        PC_DispStr(36,6,s636,DISP_BGND_BLACK+DISP_FGND_GREEN );    //显示绿色


		 PC_DispChar(1,4,e,DISP_BGND_BLACK+DISP_FGND_RED );         //显示停止标志 
PC_DispChar(27,5,f,DISP_BGND_BLACK+DISP_FGND_RED );
	
		 PC_DispStr(2,4,s42,DISP_BGND_BLACK+DISP_FGND_RED );       //显示红色  
 
		PC_DispChar(35,4,e,DISP_BGND_BLACK+DISP_FGND_RED );       //显示停止标志
PC_DispChar(33,5,f,DISP_BGND_BLACK+DISP_FGND_RED );
        PC_DispStr(36,4,s436,DISP_BGND_BLACK+DISP_FGND_RED );      //显示红色


		}
         
		 
         OSTimeDlyHMSM(0, 0, 30, 0);		//等待30秒
	     OSMutexPost(stop_Mutex);            //释放信号
		
	}
 
}
/************************任务herTask******************************************************************************************/
void  herTask (void *pdata)                         
{
#if OS_CRITICAL_METHOD == 3
    OS_CPU_SR  cpu_sr;
#endif
    pdata = pdata;
  
    for (;;) 
    {        
		
		if(err==OS_NO_ERR)
		{
        
		if(Time%2==0)
		 {
			    Z=NumWait();
		        PC_DispChar(2,3,Z,DISP_BGND_BLACK+DISP_FGND_YELLOW );  //显示等待车辆数

                Z=NumWait();
		        PC_DispChar(36,3,Z,DISP_BGND_BLACK+DISP_FGND_YELLOW );  //显示等待车辆数

			    PC_DispChar(1,7,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );	    //显示左拐符号
PC_DispChar(30,4,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );
	
			    PC_DispStr(2,7,s72,DISP_BGND_BLACK+DISP_FGND_YELLOW );      //显示左拐

			    PC_DispChar(35,7,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );      //显示左拐符号
PC_DispChar(30,6,d,DISP_BGND_BLACK+DISP_FGND_YELLOW );
		        PC_DispStr(36,7,s736,DISP_BGND_BLACK+DISP_FGND_YELLOW );    //显示左拐
			OSTimeDlyHMSM(0, 0, 2,0);	
			for(i=0;i<5;i++)
			{  
				PC_DispChar(1,7,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );	    //显示左拐符号
PC_DispChar(30,4,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );
			    PC_DispStr(2,7,s72,DISP_BGND_BLACK+DISP_FGND_YELLOW );      //显示左拐

			    PC_DispChar(35,7,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );      //显示左拐符号
PC_DispChar(30,6,d,DISP_BGND_BLACK+DISP_FGND_YELLOW );
		        PC_DispStr(36,7,s736,DISP_BGND_BLACK+DISP_FGND_YELLOW );    //显示左拐

                OSTimeDlyHMSM(0, 0, 1,0);
PC_DispChar(30,4,a,DISP_BGND_BLACK+DISP_FGND_WHITE );
	
                PC_DispStr(1,7,s5,DISP_BGND_BLACK+DISP_FGND_YELLOW );  
PC_DispChar(30,6,d,DISP_BGND_BLACK+DISP_FGND_WHITE );
		        PC_DispStr(35,7,s5,DISP_BGND_BLACK+DISP_FGND_YELLOW );      

		        OSTimeDlyHMSM(0, 0, 1,0);

			}
		}



		else{ 
			    Z=NumWait();
                PC_DispChar(2,7,Z,DISP_BGND_BLACK+DISP_FGND_YELLOW );  
                Z=NumWait();
		        PC_DispChar(36,7,Z,DISP_BGND_BLACK+DISP_FGND_YELLOW );  

			    PC_DispChar(1,3,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );
PC_DispChar(28,5,c,DISP_BGND_BLACK+DISP_FGND_YELLOW );
	
	            PC_DispStr(2,3,s32,DISP_BGND_BLACK+DISP_FGND_YELLOW );      
		        PC_DispChar(35,3,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );
PC_DispChar(32,5,b,DISP_BGND_BLACK+DISP_FGND_YELLOW );
                PC_DispStr(36,3,s336,DISP_BGND_BLACK+DISP_FGND_YELLOW );
			OSTimeDlyHMSM(0, 0, 2,0);
			for(i=0;i<5;i++)
			{ 
				PC_DispChar(1,3,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );
PC_DispChar(28,5,c,DISP_BGND_BLACK+DISP_FGND_YELLOW );
	            PC_DispStr(2,3,s32,DISP_BGND_BLACK+DISP_FGND_YELLOW );
       
		        PC_DispChar(35,3,a,DISP_BGND_BLACK+DISP_FGND_YELLOW );
PC_DispChar(32,5,b,DISP_BGND_BLACK+DISP_FGND_YELLOW );
                PC_DispStr(36,3,s336,DISP_BGND_BLACK+DISP_FGND_YELLOW );

                OSTimeDlyHMSM(0, 0, 1,0);
PC_DispChar(28,5,c,DISP_BGND_BLACK+DISP_FGND_WHITE );
		        PC_DispStr(1,3,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );
PC_DispChar(32,5,b,DISP_BGND_BLACK+DISP_FGND_WHITE );
                PC_DispStr(35,3,s5,DISP_BGND_BLACK+DISP_FGND_BLACK );
                OSTimeDlyHMSM(0, 0, 1,0);
			}

		}

        Time++;
	   
       
        OSTimeDlyHMSM(0, 0, 15,0);		//等待15秒
		
    }

   }
}
	



⌨️ 快捷键说明

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