📄 ev1000.c
字号:
#include"comm.h"
unsigned char s_buffer[18];
unsigned char frame_length;
extern unsigned char i;
//-----------------------------------------------------------------------------
unsigned char hex_split(unsigned char in,unsigned char mode) //高四位和低四位分开
{
unsigned char out;
if(mode==0)
out=in%0x10;
else if(mode==1)
out=(in-(in%0x10))/0x10;
return out;
}
//-----------------------------------------------------------------------------
unsigned char hex_unite(unsigned char in_h,unsigned char in_l) //高四位和低四位连接
{
unsigned char out;
out=(in_h<<4)+in_l;
return out;
}
//-----------------------------------------------------------------------------
unsigned char hex_to_asc(unsigned char in) //十六进制转换为ASC码
{
unsigned char out;
if(in<0x0a) out=in+48;
else out=in+55;
return out;
}
//-----------------------------------------------------------------------------
unsigned char asc_to_hex(unsigned char in) //ASC码转换为十六进制
{
unsigned char out;
if(in<58)out=in-48;
else out=in-55;
return out;
}
//-----------------------------------------------------------------------------
void verify_sum(unsigned char frame_len) //校验和
{
unsigned int h_s=0;
for(i=1;i<frame_len;i++)
{
h_s=h_s+s_buffer[i];
}
s_buffer[frame_len]=hex_to_asc(hex_split((unsigned char)(h_s/0x100), 1));
s_buffer[frame_len+1]=hex_to_asc(hex_split((unsigned char)(h_s/0x100), 0));
s_buffer[frame_len+2]=hex_to_asc(hex_split((unsigned char)(h_s%0x100), 1));
s_buffer[frame_len+3]=hex_to_asc(hex_split((unsigned char)(h_s%0x100), 0));
s_buffer[frame_len+4]=FRAME_END;
frame_length=frame_length+5;
}
//-----------------------------------------------------------------------------
//修改从机的功能码F002,改从机的运行频率
void modify_frequency(unsigned char station,unsigned int frequency)
{
s_buffer[0]=FRAME_START;
s_buffer[1]=hex_to_asc(hex_split(station, 1));
s_buffer[2]=hex_to_asc(hex_split(station, 0));
s_buffer[3]=hex_to_asc(hex_split(FUN_WRITE_EV1000, 1));
s_buffer[4]=hex_to_asc(hex_split(FUN_WRITE_EV1000, 0));
s_buffer[5]=0x30;
s_buffer[6]=0x30;
s_buffer[7]=0x30;
s_buffer[8]=0x32;
s_buffer[9]=hex_to_asc(hex_split((frequency/0x100), 1));
s_buffer[10]=hex_to_asc(hex_split((frequency/0x100), 0));
s_buffer[11]=hex_to_asc(hex_split((frequency%0x100), 1));
s_buffer[12]=hex_to_asc(hex_split((frequency%0x100), 0));
frame_length=13;
verify_sum(frame_length);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -