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

📄 comm_1_mode.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 5 页
字号:
unsigned char quanguo_addr[6];
/**********************************************************************/
// comm 485 1 init
unsigned char comm_485_1_use(unsigned int value)
{union kk
		{
    			struct{
       				unsigned char    b0:1;
       				unsigned char    b1:1;
       				unsigned char    b2:1;
       				unsigned char    b3:1;
       				unsigned char    b4:1;
       				unsigned char    b5:1;
       				unsigned char    b6:1;
       				unsigned char    b7:1;
       				unsigned char    b8:1;
       				unsigned char    b9:1;
       				unsigned char    b10:1;
       				unsigned char    abt:1;              /* Arbitration lost detecting flag */
       				unsigned char    oer:1;              /* Overrun error flag */
       				unsigned char    fer:1;              /* Framing error flag*/
       				unsigned char    per:1;              /* Parity error flag */
       				unsigned char    sum:1;              /* Error sum flag */
    					}bit;
    			struct{
       				unsigned char    low;                /* Low  8 bit */
       				unsigned char    high;               /* High 8 bit */
    					}byte;
    			unsigned int  word;
		}buffer;
buffer.word=value;
if((buffer.bit.b0^buffer.bit.b1^buffer.bit.b2^buffer.bit.b3^buffer.bit.b4^buffer.bit.b5^buffer.bit.b6^buffer.bit.b7)
         ==buffer.bit.b8)
      		return 0;//e
else 
		return 1;//p
}

void comm_485_1()
{unsigned char l;
union kk
		{
    			struct{
       				unsigned char    b0:1;
       				unsigned char    b1:1;
       				unsigned char    b2:1;
       				unsigned char    b3:1;
       				unsigned char    b4:1;
       				unsigned char    b5:1;
       				unsigned char    b6:1;
       				unsigned char    b7:1;
       				unsigned char    b8:1;
       				unsigned char    b9:1;
       				unsigned char    b10:1;
       				unsigned char    abt:1;              /* Arbitration lost detecting flag */
       				unsigned char    oer:1;              /* Overrun error flag */
       				unsigned char    fer:1;              /* Framing error flag*/
       				unsigned char    per:1;              /* Parity error flag */
       				unsigned char    sum:1;              /* Error sum flag */
    					}bit;
    			struct{
       				unsigned char    low;                /* Low  8 bit */
       				unsigned char    high;               /* High 8 bit */
    					}byte;
    			unsigned int  word;
		}buffer;
 buffer.word=u2rb; 
 time_boud_500_use=0;
 RCOMM1_TIMER=0x00;
 if((0xf0&buffer.byte.high)!=0)         
 	{  
 		u2rb=0x00;
          	u2mr=00;
          	RSTATUS_485_1=RERR;
          	u2mr=0x6;// 6
         }
else
    	{
     		switch(RSTATUS_485_1)
          		{
          			case REC:
                         			l=1;
          	           			if( RPROTOCOL_485_1==HUALONG)
          	           				{
          	           					send4851_pry=0;
          	               				if(comm_485_1_use(buffer.word)==0)//e
          	                    					l=0;
          	           				}
          	           			else
          	           				{ 
          	           					send4851_pry=1;
          	                				if(comm_485_1_use(buffer.word)==1)//p
          	                    					l=0;
          	           				}
          	           			if(1==l)
          	           				{
          	                				RRBUFFER_485_1[RCURRENTADDR_485_R_BUFFER_1]=buffer.byte.low;
                              				RCURRENTADDR_485_R_BUFFER_1=RCURRENTADDR_485_R_BUFFER_1+1;
                               				RLEN_485_R_BUFFER_1=RLEN_485_R_BUFFER_1+1;                  
                               				if(RLEN_485_R_BUFFER_1>=MAX_R_485_1)  
									RSTATUS_485_1=RERR;
                               			}
                           			else   
								RSTATUS_485_1=RERR; 
                            		break;
         			case START:
                   					{
                   						switch(buffer.byte.low)
                   							{
                    								case 0xaa:
                    	          								if(comm_485_1_use(buffer.word)==1)//p                           
                                 									{
                                 										RLEN_485_R_BUFFER_1=1;
                                  										RCURRENTADDR_485_R_BUFFER_1=0;
                                 						 				RRBUFFER_485_1[0]=buffer.byte.low;
                                  										RCURRENTADDR_485_R_BUFFER_1=1;
                                  										u2mr=0x6;// ii6
                                  										send4851_pry=0;
                                  										RPROTOCOL_485_1=HUALONG;
                                  										RSTATUS_485_1=REC;
                                  									}
                                  								break;
                   								case 0x68:                               
                                 								if(comm_485_1_use(buffer.word)==0)//e     
                                									{
                                										RLEN_485_R_BUFFER_1=1;
                                 										RCURRENTADDR_485_R_BUFFER_1=0;
                                 										RRBUFFER_485_1[0]=buffer.byte.low;
                                 										RCURRENTADDR_485_R_BUFFER_1=1;
                                 										RPROTOCOL_485_1=QUANGUOZHEJIANG;
                                 										u2mr=0x6;
                                 										send4851_pry=1;
                                 										RSTATUS_485_1=REC;
                                 									} 
                             								break;
                     							 }  
                      
                    							} 
							break;
                    	default: 
					break;
            	}
            
   	}

}

void comm_485_1_send()
{unsigned int a;
	union kk{
    				struct{
       					unsigned char    b0:1;
       					unsigned char    b1:1;
       					unsigned char    b2:1;
       					unsigned char    b3:1;
       					unsigned char    b4:1;
       					unsigned char    b5:1;
       					unsigned char    b6:1;
       					unsigned char    b7:1;
       					unsigned char    b8:1;
       					unsigned char    b9:1;
       					unsigned char    b10:1;
       					unsigned char    abt:1;              /* Arbitration lost detecting flag */
       					unsigned char    oer:1;              /* Overrun error flag */
       					unsigned char    fer:1;              /* Framing error flag*/
       					unsigned char    per:1;              /* Parity error flag */
       					unsigned char    sum:1;              /* Error sum flag */
   						 }bit;
    				struct{
       					unsigned char    low;                /* Low  8 bit */
      			 			unsigned char    high;               /* High 8 bit */
    						}byte;
    				unsigned int  word;
			}buffer;
buffer.word=0;
time_boud_500_use=0;
if(RLEN_485_T_BUFFER_1==0) 
	{
        // FA WAN ,RU CHU YI FA SONG ZHUAN TAI,JIE SHOU
       	s2tic=0x00;
       	RSTATUS_485_1=START;
       	RLEN_485_R_BUFFER_1=0;
       	RPROTOCOL_485_1=0;
        	RCURRENTADDR_485_R_BUFFER_1=0;
        	u2brg=table_brg_value_from_boud[ boud_use];// boud use
        	u2c0=table_u2c0_value_form_boud[ boud_use];
        	u2mr=0;
        	u2mr=0x06;  // ii6
        	ucon=0x01;
       	u2c1=0x7;                           
       	s2ric=7;                     
         	a=u2rb;        
         }
 else
        { 
              RLEN_485_T_BUFFER_1=RLEN_485_T_BUFFER_1-1;
              buffer.byte.low=RRBUFFER_485_1[RCURRENTADDR_485_T_BUFFER_1];
              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!=1)// e
                        buffer.bit.b8=~buffer.bit.b8;
              u2tb=buffer.word;
              RCURRENTADDR_485_T_BUFFER_1=RCURRENTADDR_485_T_BUFFER_1+1;                   
          }
     }




// chu shi 485_1
void init_485_1()
{
	//qingqiu_mochong_change=0;
	zhejiang_mima_enable=0;
	noprog_time=0;
	send4851_pry=0;
	sendremote_pry=0;
	shiduan_onetimeprog=0;
	cuofengshiduan_onetimeprog=0;
	cuofengvalue_onetimeprog=0;
	priceyuyue_onetimeprog=0;
	cuofengshiduan_switch_onetimeprog=0;
	cuofengvalue_switch_onetimeprog=0;
	RLEN_485_T_BUFFER_1=0;
	RCURRENTADDR_485_T_BUFFER_1=0;
	RFLAG_SEND1_START=0;
	pindir_rxd2=0;
	pin_rxd2=0;
	pindir_txd2=0;
	pin_txd2=0;
 	u2rb=0x00;
 	u2c1=0;
	s2tic=0;
	tongdao=comm485_1;
	my_tongdao_start();
}

/****************************************************************************************/
// comm 485 mode



 // chu shi tong dao 1 
 // tong dao 485 1 fa
start_send_485_1()
{
	union kk
		{
    		struct
			{
       	          	unsigned char    b0:1;
       		   	unsigned char    b1:1;
       			unsigned char    b2:1;
       			unsigned char    b3:1;
       			unsigned char    b4:1;
       			unsigned char    b5:1;
       			unsigned char    b6:1;
       			unsigned char    b7:1;
			       unsigned char    b8:1;
			       unsigned char    b9:1;
			       unsigned char    b10:1;
			       unsigned char    abt:1;              /* Arbitration lost detecting flag */
			       unsigned char    oer:1;              /* Overrun error flag */
			       unsigned char    fer:1;              /* Framing error flag*/
			       unsigned char    per:1;              /* Parity error flag */
			       unsigned char    sum:1;              /* Error sum flag */
    			}bit;
    		struct
			{
       			unsigned char    low;                /* Low  8 bit */
       			unsigned char    high;               /* High 8 bit */
    			}byte;
    				unsigned int  word;
		}buffer;

⌨️ 快捷键说明

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