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

📄 set7249.cpp

📁 串口可交换程序
💻 CPP
字号:
#include <graphics.h>
#include <stdio.h>
#include <dos.h>
#include <math.h>
#include "g_func.h"
#include "global.h"
#include "powerkey.h"

void init_table()
{
	FILE *fp;
	if((fp=fopen("v7249.dat","rb"))==NULL){
	  for(int i=0;i<18;i++){
/*		table[0][i]=-1.1220f;
		table[1][i]=-1.1220f;
		table[2][i]=-1.1220f;
		table[3][i]=-1.1220f;
		table[4][i]=-1.1220f;
		table[5][i]=-1.1220f;
		table[6][i]=-1.1220f;
		table[7][i]=-0.628f;
		table[8][i]=-0.73f;
		table[9][i]=-0.85f;
		table[10][i]=-1.0f;
		table[11][i]=-1.1589f;
		table[12][i]=-1.3125f;
		table[13][i]=-1.5049f;
		table[14][i]=-1.7183f;
		table[15][i]=-1.9353f;
		table[16][i]=-2.2087f;
		table[17][i]=-2.4619f;
		table[18][i]=-2.7384f;
		table[19][i]=-3.1023f;
		table[20][i]=-3.4481f;
		table[21][i]=-3.9311f;
		table[22][i]=-4.4168f;
*/
			table[0][i]=-1.1220f;
			table[1][i]=-1.1220f;
			table[2][i]=-1.1220f;
			table[3][i]=-1.1220f;
			table[4][i]=-1.2589f;
			table[5][i]=-1.4125f;
			table[6][i]=-1.5849f;
			table[7][i]=-1.7783f;
			table[8][i]=-1.9953f;
			table[9][i]=-2.2387f;
			table[10][i]=-2.5119f;
			table[11][i]=-2.8184f;
			table[12][i]=-3.1623f;
			table[13][i]=-3.5481f;

	  }
//	  outtextxy(100,100,"hello0");
	  return;
	}
	fread(table,sizeof(float),14*18,fp);
	fclose(fp);
	//test at 04-06-02,lingyi
//	table[10][0]=-3.1;
//	table[10][6]=-4;
//	table[10][8]=-4;
//	table[10][14]=-3.9;
//	table[10][15]=-4.3;
//	table[10][16]=-4.8;
}



float search(long f,float p_db)
{
	float data;
	int row;
	int line;
	char msg[20];
	long frq[]={100000,150000,300000,500000,700000,1000000,3000000,7000000,
				10000000,15000000,20000000,25000000,30000000,35000000,40000000,
				45000000,48000000,50000000,51000000};
	if(f<100000||f>50000000)
		return 0.0;

//	if(p_db<0)
//		return 0.0;
	if(p_db<13.001&&p_db>-0.001)
		row=(int)p_db;
	else
		return 0.0;

	for(line=0;line<18;line++)	//calculate line
		if(f<frq[line+1])
			break;
	if(f<50000000)
		data=table[row][line]
			 +(float)(f-frq[line])/(float)(frq[line+1]-frq[line])
			 *(table[row][line+1]-table[row][line]);
	else
		data=table[row][17];
	data=data+(table[row+1][line]-table[row][line])*((p_db-row));//
//	printf("%d,%d:%.4f,%.4f ",row,line,table[row][line],data);
	return data;
}
void set_tab(int row,int line,float p_v)
{
	table[row][line]=p_v;
}

int convert(float p_v)
{
	int data;

	if((p_v-5)>1e-3 | (p_v+5)<1e-3)
		return 0x2000;
	 if(fabs(p_v-5.0)<1e-3)
		data=0x17ff;
	  else
		data=p_v*2048/5;
	//if(data<0)
	//	data|=0x0800;
	data|=0x1000;
//	printf("0x%x ",data);
	return data;
}
void set7249(long f,float p_db)
{
	float power_out;
	set_relay(p_db);
	if(p_db>13.001)
		return;
	if(p_db>-0.001){
//		outportb(0x35c,0);
		power_out=p_db;
	}
	else if(p_db>-10.001){
//		outportb(0x35c,0x1);
		power_out=p_db+10;
	}
	else if(p_db>-20.001){
//		outportb(0x35c,0x2);
		power_out=p_db+20;
	}
	else if(p_db>-30.001){
//		outportb(0x35c,0x3);
		power_out=p_db+30;
	}
	else if(p_db>-40.001){
//		outportb(0x35c,0x6);
		power_out=p_db+40;
	}
	else if(p_db>-50.001){
//		outportb(0x35c,0x7);
		power_out=p_db+50;
	}
	else if(p_db>-60.001){
//		outportb(0x35c,0x0e);
		power_out=p_db+60;
	}
	else if(p_db>-70.001){
//		outportb(0x35c,0x0f);
		power_out=p_db+70;
	}
	else
		return;
	outport(0x350,convert(search(f,power_out)));
}

⌨️ 快捷键说明

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