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

📄 comm_1_mode.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 5 页
字号:
if((RFLAG_SEND1_START==1)&&(RSTATUS_485_1==SEND)&&(RLEN_485_T_BUFFER_1!=0))
 	{
         	RFLAG_SEND1_START=0;
         	RCURRENTADDR_485_T_BUFFER_1=1;        
       	u2mr=0x06;// two bit stop  16         
         	u2c1=0x17;//  p1f
         	RSTATUS_485_1=SEND;
         	asm("FCLR I");
        	asm("NOP");
        	asm("NOP");
        	asm("NOP");
        	asm("NOP");
         	s2ric=0;
         	s2tic=7;
         	asm("NOP");
        	asm("NOP");
        	asm("NOP");
        	asm("NOP");
        	asm("FSET I");       
         	RLEN_485_T_BUFFER_1=RLEN_485_T_BUFFER_1-1;
         	buffer.word=0;
         	buffer.byte.low=RRBUFFER_485_1[0];       
        	buffer.bit.b8=buffer.bit.b0^buffer.bit.b1^buffer.bit.b2^buffer.bit.b3
                                             ^buffer.bit.b4^buffer.bit.b5^buffer.bit.b6^buffer.bit.b7;
         	if(send4851_pry==0)// p
                	buffer.bit.b8=~buffer.bit.b8;                   
         	u2tb=buffer.word;
       } 
}

 
 void comm_485_1_mode()
 {  	// miao  hua long zhang ji you xiao 5 second
	if(rzhangji_485_mima_use_second!=RSOFT_RTC_SECOND)
   		{
   			rzhangji_485_mima_use_second=RSOFT_RTC_SECOND;
     			if(rtime_485_5second!=0) 
				rtime_485_5second=rtime_485_5second-1;     
     			if(rtime_485_zhangjimima!=0) 
				rtime_485_zhangjimima=rtime_485_zhangjimima-1;
     			if(rtime_485_zhangjimima==0) 
				rstatus_485_mima_youxiao=zhangji_mima_youxiao_start;     
     			if(rtime_485_5second==0)
     	    			if(rstatus_485_mima_youxiao==zhangji_mima_youxiao_inhao)
     	    	   			rstatus_485_mima_youxiao=zhangji_mima_youxiao_yes;
		}
// boud
	tongdao=comm485_1;
	rbuffer=RRBUFFER_485_1;
	if(time_boud_500_use>=50) 
 		{
 			time_boud_500_use=0;
   			if(boud_use!=RAM[R_BOUD])
   				{//tongdao=1;
        				my_tongdao_start();   	
   				}   
  		}      
     //  zai fa song zhuang tai wei start send xia, chao shi ding shi qi qing wei ling
     	if((RSTATUS_485_1==START)||(RSTATUS_485_1==SEND) )  
		RCOMM1_TIMER=0;
            // zai you jie shou shu ju ji zhuang tai bu wei qi shi xia, pan chao shi fou,
            // ruo chao shi, ze chao shi chu li
     	if(( RLEN_485_R_BUFFER_1!=0)||(RSTATUS_485_1!=START))
 	  	{
 	    		if((RCOMM1_TIMER>=MAX_R_485_1_TIMER)||(RSTATUS_485_1==RERR))
 		  		{//tongdao=1;
                  			my_tongdao_start();
                  			RDISPLAY_4851INFO_STATUS=INFO_START;
 	         		}
      			else
         			{
                			switch(RSTATUS_485_1)
                    				{
                       				case START: 
                       	              			num_check_485=0;
                       	              			break;  // when status is "receive"
                       				case REC: 
                                       				switch(RPROTOCOL_485_1)
                                        					{
                                       	  						case HUALONG:      
													// delete by zhanglong ---->start
                                       	  	                           			//phualong(&RLEN_485_R_BUFFER_1,
                               		         	  	                            //			&RDISPLAY_4851INFO_STATUS,
                               		         	  	                            //			&RSTATUS_485_1);
													// delete by zhanglong ---->end
                               		         	             					break;   
                               		     						case QUANGUOZHEJIANG :
														judge_quanguo_zhejiang(&RLEN_485_R_BUFFER_1,
                               		         	  	                            			&RDISPLAY_4851INFO_STATUS,
                               		         	  	                            			&RSTATUS_485_1);
                               		                             				break;
                                                    				}
                               		 				break;
                  
                  					 }
                               
           				}
      			 }
	start_send_485_1();             // you fa song  qing qiu cai fa song
 }
 	

 
                               

// zhi zhen yong

void set_buffer_first()
{unsigned char l;
*rbuffer=0xfe;
*(rbuffer+1)=0xfe;
*(rbuffer+2)=0xfe;
*(rbuffer+3)=0x68;
for(l=0;l<6;l++)
    *(rbuffer+4+l)=quanguo_addr[l];
*(rbuffer+10)=0x68;
}
void set_buffer_first_addr()
{unsigned char l;
*rbuffer=0xfe;
*(rbuffer+1)=0xfe;
*(rbuffer+2)=0xfe;
*(rbuffer+3)=0x68;
for(l=0;l<6;l++)
     *(rbuffer+4+l)=RAM[R_BIAOADDR_L+l];
*(rbuffer+10)=0x68;
}
// mima err chu li
unsigned char quanguo_mima_ok_err(pian)
unsigned char pian;
{unsigned char l,l1,l2;
  unsigned int addr;
  l=1;
  l1=*(rbuffer+10+pian);
  if(*(rbuffer+11+pian)!=wr_data[0]) l=0; 
  if(*(rbuffer+12+pian)!=wr_data[1]) l=0;
  if(*(rbuffer+13+pian)!=wr_data[2]) l=0;
  if(progfunction_security==yes) 
     	if(l==0)  // err num
   	 	g_errmima_function();
  if(l1<3)
     	{
        //           an quan
        	if(progfunction_security==yes) 
            		{
              		if(RSTATUS_RUN==LOCK_DEED) 
					l=0;
             			if(l==1) 
                  			if(RAM[R_SECURITY_LOCK_NUM]!=0)
               	  			{
               	    				RAM[R_SECURITY_LOCK_NUM]=0;
               	    				data_addr.addri=FM_SECURITY_LOCK_NUM;
                         				wr_data[0]=RAM[R_SECURITY_LOCK_NUM];
                         				write(FM,1);
						}
           		}
    		else
           		l=gmima_function(l,l1);    
	}
else 
	l=0;
// add
if(RFLAG_POWERDOWN==1) 
	l=0;
return l;
}




// quan xian   1 ok 0 err send no ok
unsigned char quanguo_quanxian_ok(addr)
unsigned int addr;
{  // quan xian
unsigned char value;
value=0;
data_addr.addri=addr;
if(1==read(FM,1))
      if(wr_data[0]>=(*(rbuffer+12))) value=1;
if(value==0)
    {
    	send_write_err(0x4);
     }
return value;
}



void jiaobiaoread()
{unsigned char addr,l,m,value;
value=1;
addr=*(rbuffer+12)-0x33;
l=*(rbuffer+13)-0x33;
if(l==0) 
	value=0;
if(l>3) 
	value=0;
if(1==value)
     {
     	read7758(addr,l);
       set_buffer_first();
       *(rbuffer+11)=0x86;
       *(rbuffer+12)=l+2+4;
       *(rbuffer+13)=0x35;
       *(rbuffer+14)=0x33+0xbe;
       *(rbuffer+15)=addr+0x33;
       *(rbuffer+16)=l+0x33;
       for(m=0;m<l;m++)
       	*(rbuffer+17+m)=wr_data[m]+0x33;
       send_zuzhen_use(l+2);
     }
else
     send_read_err(0x1);
}
PQUANGUO(rlen,rdisplay_info_status,rstatus)
unsigned char *rlen,*rdisplay_info_status,*rstatus;  
// rlen----------     len num  rec
// rdisplay_info_status------myaddr, broadcast, start
// rstatus----------------> rec,send,start,err 
{
   unsigned char *d1,d2,d3,l,value,l1,len9;
   unsigned char addr,lenght,k;
   unsigned char codeh,codel;
   unsigned int code,y,x,x1;
  len9=*(rbuffer+9);
  if(*rlen>=8)
   	{
   		if((*rbuffer==0x68)&&(*(rbuffer+7)==0x68))
            		{
            			l=1;
             			for(l1=0;l1<6;l1++)
             	    			if(*(rbuffer+1+l1)!=0x99) 
						l=0;
             			if(1==l)
                  			{ 
                  				if(*rdisplay_info_status!=INFO_GUANGBO)   
      	                  				{
      	                  					*rdisplay_info_status=INFO_GUANGBO;  
                            				 display_comm=2;
                           				}
                   			}
               		else
                     		{
                     			l1=1;// add
                       			l=0;
                       			d1=&RAM[R_BIAOADDR_L+5];
                       			for(d2=6;d2>0;d2--)
                            			{
                            				if(*(rbuffer+d2)==(*d1))
                       	    					{
                       	    						l=1;
                                   					d1--;
									}                                
                              				else
                              					{
                              						if((*(rbuffer+d2)==0xaa)&&(0==l))
                              	       					d1--;
                                     					else
                                     						{
                              	  						//no err wait next
                                           					// d2=0;
                                            						l1=0;// add                                   
                                            						my_tongdao_start();
                                           					}
                              					}
       	               				}                  
                       			if(l1==1)
                    	       			{
                    	       				if(*rdisplay_info_status!=INFO_ME)   
      	                         					{
      	                         						*rdisplay_info_status=INFO_ME;
                                   					display_comm=2;	                       
                                 					}
      	                     			}

⌨️ 快捷键说明

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