📄 set7249.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 + -