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

📄 comm_remote.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 3 页
字号:
									}
                        					break;
                 			default : 
								remote_status=remote_phase_err;
                            		 		tb0s=0;
                             				tb0ic=0;
					} 
                             break;                       
                        



// yao kong qi
   	case remote_phase_yaokong:                                                 
                   switch(remote_status_yaokong)
                   		{
                   	 		case REMOTE_YAOKONG_3617:                   	 	
                   	             			if(pin_irrx==0)   //low  end code
                   	             				{
                   	             					remote_status=remote_phase_start;
                   	                 					remote_status_start=remote_start_1;
                                      					udf0=0;
                                     	 				trgsr0=0;
                                      					onsf0=0x0;
                                      					cpsrf=0x80;
                                      					tb0ic=0;
                                      					tb0s=0;
                                      					int3ic=7;
									}
                                  			else
                                  				{
                                  					remote_status_yaokong=REMOTE_YAOKONG_225;
                                     					tb0s=0;
                                     					tb0ic=0;
                                     					tb0mr=0x00;   //01
                                     					tb0=22500;//22818-1500;  // pian 1500
                                     					len_bit_remote=0;
                                       				udf0=0;
                                      					trgsr0=0;
                                      					onsf0=0x0;
                                      					cpsrf=0x80;
                                      					tb0ic=0;
                                      					tb0s=0;
                                      					tb0ic=7;
                                      					tb0s=1;
									}
                                      			break;
                     		case REMOTE_YAOKONG_225:                     	 	
                     	           		if(pin_irrx==1)  //pin_irrx==0
                     	           			{
                     	           				tb0s=0;// judge first bit =0
                     	           				tb0ic=0;
                     	           				remote_status=remote_phase_err;
								}                     	          
                     	           		else
                     	           	 		{
                                         			len_bit_youxiao=31;// remain 31 bit
                     	           	 			len_bit_remote=1;                     	           	  
                     	              			remote_status_yaokong=REMOTE_YAOKONG_1125a;
                                       			tb0s=0;
                                       			tb0ic=0;
                     	              			tb0mr=0x00;   //01
                                       			remote_rec2.bit.b7=pin_irrx;
                                      				tb0=11250;// time 1125 us(bit to bit)
                                      				udf0=0;
                                      				trgsr0=0;
                                      				onsf0=0x0;
                                      				cpsrf=0x80;
                                      				tb0ic=7;
                                      				tb0s=1;
								}
                                      		break;
                    			case REMOTE_YAOKONG_2000:   // finish rec  	         
                    	          			if((RREMOTE_YAOKONG_BUFFER[0]==0x00)
                    	          	        		&&(RREMOTE_YAOKONG_BUFFER[1]==0xaa)
                    	          	        		&&(RREMOTE_YAOKONG_BUFFER[2]==0xaa))
                 	                 				RREMOTE_YAOKONG_BUFFER[9]=1;
								else 
									remote_status=remote_phase_err;
                    	              		tb0s=0;
                                      			udf0=0;
                                      			trgsr0=0;
                                      			onsf0=0x0;
                                      			cpsrf=0x80;
                                      			tb0ic=0;
                                      			int3ic=7;
                                      			tb0s=0;  
                                      			break;
                    			case REMOTE_YAOKONG_1125a:   // rec 31 bit                 	            
                                       		len_bit_remote=len_bit_remote+1;
                                         		remote_rec2.byte=remote_rec2.byte>>1;
                                        	 	remote_rec2.bit.b7=pin_irrx; //p5_0                                          
                                         		if((remote_rec2.bit.b7==0)&&(len_bit_youxiao!=0)) 
									len_bit_youxiao=len_bit_youxiao-1;
                                         		switch(len_bit_remote)
                                         			{
                                         				case 8:
                                         	   	 				RREMOTE_YAOKONG_BUFFER[0]=remote_rec2.byte;
                                         	    					break;                                         	 
                                         	 			case 16:
                                                					RREMOTE_YAOKONG_BUFFER[1]=remote_rec2.byte;
                                         	    					break;
                                         	 			case 24:   
                                         	    					RREMOTE_YAOKONG_BUFFER[2]=remote_rec2.byte;
                                         	    					break;
                                         	 			case 32:
                                         	 					RREMOTE_YAOKONG_BUFFER[3]=remote_rec2.byte;
                                         	 					break;
                                         				case 40:
                                         	    					RREMOTE_YAOKONG_BUFFER[4]=remote_rec2.byte;
                                         	    					break;
                                         	 			case 48: 
                                                					RREMOTE_YAOKONG_BUFFER[5]=remote_rec2.byte;
                                         	    					break;
                                         	 			case 56:   
                                         	    					RREMOTE_YAOKONG_BUFFER[6]=remote_rec2.byte;
                                         	    					break;
                                         	 			case 64:
                                         	 					RREMOTE_YAOKONG_BUFFER[7]=remote_rec2.byte; 
						      						break;                                          			 		 	
                                         			}
                                          	if((len_bit_remote>=64)||(len_bit_youxiao==0))
                                         			{                                         
                                         				if((8*(len_bit_remote/8)!=len_bit_remote))
                                         					{ 
                                         						remote_rec2.byte=remote_rec2.byte>>1;
                                           						remote_rec2.bit.b7=1;
                                         						RREMOTE_YAOKONG_BUFFER[len_bit_remote/8]=remote_rec2.byte;
											} 
                                         				remote_status_yaokong=REMOTE_YAOKONG_2000;
                                          				tb0mr=0x00;   //01
                                          				tb0=40000;     //01
                                          				udf0=0;
                                          				trgsr0=0;
                                          				onsf0=0x0;
                                          				cpsrf=0x80;
                                          				tb0ic=7;
                                          				tb0s=1;
									}
                                         	break;  
                             	default:
							tb0ic=0;
                                     		remote_status=remote_phase_err;
                   		}
                   	break;
 	case remote_phase_send: 
			break;
	default:
			tb0ic=0; 
			break;
      	}
}                    



                        

//hong wai yao kong chu li zu cheng xu
void chuli_remote()
{union remote_use
		{
     			unsigned long l;
     			unsigned char a[4];
                }b;
unsigned char c;
if((yaokong_chaoshi_timer>=max_yaokong_chaoshi_timer)||(rtime_yaokong_rec>=max_time_rec_yaokong))
 	{
    		rtime_yaokong_rec=0;
  		RLEN_REMOTE_YAOKONG=0;
   		remote_status=remote_phase_start;
   		yaokong_chaoshi_timer=0;
   		tb0ic=0;
   		tb0s=0;
   		udf0=0;
   		trgsr0=0;
   		onsf0=0x0;
  		cpsrf=0x80;
   		tb0ic=0;
   		tb0s=0;
   		int3ic=7;
	 }
 else
 	{  
 		if(RDUOJIAN_SECOND!=RSOFT_RTC_SECOND)
      			{
      				RDUOJIAN_SECOND=RSOFT_RTC_SECOND;
       			if(RYAOKONG_DUOJIAN_TIMER==1)
         				{
         					RYAOKONG_DUOJIAN_TIMER=RYAOKONG_DUOJIAN_TIMER-1;
          					RSTATUS_DUOJIAN=NODUOJIAN;
					}
      				else 
      					if(RYAOKONG_DUOJIAN_TIMER>0)
        					RYAOKONG_DUOJIAN_TIMER=RYAOKONG_DUOJIAN_TIMER-1;
      			 }
 		if(RREMOTE_YAOKONG_BUFFER[9]==1)
   			{
   				RREMOTE_YAOKONG_BUFFER[9]=0;
     				light_time=180;
     				b.a[3]=0;
     				b.a[2]=RREMOTE_YAOKONG_BUFFER[3];
     				b.a[1]=RREMOTE_YAOKONG_BUFFER[4];
     				b.a[0]=RREMOTE_YAOKONG_BUFFER[5];
     				switch(b.l)
     					{ 
     						case 0xaaaa:       
								doyaokongremote(1);
								break;   // 1
     	  					case 0x02a8aa:     
								doyaokongremote(2);
								break;   // 2
         					case 0x04a4aa:    
								doyaokongremote(3);
								break;   // 3
         					case 0x0aa0aa:    
								doyaokongremote(4);
								break;   // 4
         					case 0x0894aa:    
								doyaokongremote(5);
								break;   // 5
         					case 0x1290aa:    
								doyaokongremote(6);
								break;   // 6
         					case 0x1488aa:    
								doyaokongremote(7);
								break;   // 7
         					case 0x2a80aa:    
								doyaokongremote(8);
								break;   // 8
         					case 0x1054aa:    
								doyaokongremote(9);
								break;   // 9
         					case 0x2250aa:    
								doyaokongremote(0);
								break;   // 0
         					case 0x2448aa:    
								doyaokongduokey(1);
								break;   // -1
         					case 0x4a40aa:    
								doyaokongduokey(2);
								break;   // -2
         					case 0x2828aa:    
								doyaokongduokey(3);
								break;   // -3
         					case 0x4a81a8:    
								doyaokongduokey(4);
								break;   // -4
         					case 0xaa02a8:    
								doyaokongduokey(5);
								break;   // -5
         					case 0x9410a9:    
         	                      			doyaokongduokey(6);
								break;   // -6
         					case 0x5421a8:    
         	                     			doyaokongduokey(7);
								break;   //-7
         					case 0x9220a9:    
         	                     			doyaokongduokey(8);
								break;   //-8
         					case 0x50a8a8:    
								RDISPLAY_ENVENT=DISPLAY_ENVENT_OPENCLOSE;
                                  				RSTATUS_DUOJIAN=NODUOJIAN;
                                   			break;   //power
         					case 0xa2a0a8:    
								RDISPLAY_ENVENT=DISPLAY_ENVENT_POINTADD;
                                  				RSTATUS_DUOJIAN=NODUOJIAN;
                                  				break;   //+
         					case 0xa490a8:    
								RDISPLAY_ENVENT=DISPLAY_ENVENT_POINTSUB;
                                   			RSTATUS_DUOJIAN=NODUOJIAN;
                                   			break;   //-
         					case 0x2054a9:    
								RDISPLAY_ENVENT=DISPLAY_ENVENT_KEY;
                                  			 	RSTATUS_DUOJIAN=NODUOJIAN;
                                    			if(RLCD_DISPLAY_STATUS!=DISPLAY_KEY)
                                    				if(RFLAG_B_A_KU==1)
                                    					set_reference_value(END_REFERENCE);
                                   			break;   //trun
         					case 0xaa00aa:    
								RDISPLAY_ENVENT=DISPLAY_ENVENT_DATE;
                                   			RSTATUS_DUOJIAN=NODUOJIAN;
                                   			break;   //clock
     					}
        		RLEN_REMOTE_YAOKONG=0;
        		RREMOTE_YAOKONG_BUFFER[0]=0xff;// add
       		remote_status=remote_phase_start;
                     tb0s=0;
                     udf0=0;
                     trgsr0=0;
                     onsf0=0x0;
                     cpsrf=0x80;
                     tb0ic=0;
                     tb0s=0;
                     int3ic=7;
      		}
    	}
}




//remote cuofeng  receive------------------------------------------->end





























⌨️ 快捷键说明

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