📄 comm_1_mode.h
字号:
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 + -