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

📄 ev1000.c

📁 proface的触摸屏和艾默生的变频器通过此程序可相互通信
💻 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 + -