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

📄 g1.h

📁 选频加功放一体化模块监控处理程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************************
    宏定义
******************************************************************************************/
#include "pic.h" 
#define _nop()	{ asm("NOP");}
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
#define PWRAV_CNT  20
#define ALC_CNT    20
#define V28_CNT    20
#define TEMP_CNT   20
#define IIC_DELAY  15	
#define BUF_LENGTH 80
#define PROTL      0x02  //协议版本
#define TYPE    0x01	//协议类型
#define ID_CNT     100
//#define MOD_ID_L    1	
//#define MOD_ID_H    0
//#define MOD_ADDR    4
#define Para_Num    196  // 38*4+11*4=196
//#define Basic_Para_Num 5
//#define MOD_Num     38
//温补参数有12个:ATT1、ATT2,vgs1,vgs2,vgs3,vgs4,pc1u,pc2u,freq1,freq3,pwr1,pwr2
#define  tn   10//此模块中温补参数个数(包括控制项与检测项 
//#define  tnzj   3//此模块中某温度下温补参数占多少字节(与tn不同,因为栅压控制补偿实际值参数占两个字节)
#define  pn   2//此模块中频响补偿实际值参数个数
#define  zyn   2//此模块中增益补偿实际值参数个数
#define tpnumb  30//温度划分段数30段
#define fnumb   30//频率划分段数30段
//#define fnumbbyte   60//频率信道在EEPROM中占用字节数60byte
#define bcnumb  64//标称值划分段数64段
#define tempd   0x0100//温度值在EEPROM中首地址(即温度值1的EEPROM地址,共30个温度值,占30个字节)
#define freqd   0x0120//频率值在EEPROM中首地址(即频率值1的EEPROM地址,共30个频率值,占60个字节)
#define bczd    0x0160//标称值在EEPROM中首地址(即标称值1的EEPROM地址,共32个标称值,占30个字节)
//#define tempcsd 0x0190//温补参数编码在EEPROM中首地址(即温补参数1编码的EEPROM地址)编码为补偿参数在标准化协议中的地址
//#define freqcsd 0x0200//频补参数编码在EEPROM中首地址(即频补参数1编码的EEPROM地址)编码为补偿参数在标准化协议中的地址
//#define bczcsd  0x0230//标称值补偿参数编码在EEPROM中首地址(即标称值补偿参数1编码的EEPROM地址)编码为补偿参数在标准化协议中的地址
#define tempcszd 0x0260//温补参数值在EEPROM中首地址(即温补参数值1的EEPROM地址)
#define freqcszd 0x0500//频补参数值在EEPROM中首地址(即频补参数值1的EEPROM地址)
#define bczcszd  0x0600//标称值补偿参数值在EEPROM中首地址(即标称值补偿参数值1的EEPROM地址)
/**************************************************************************************
								数据类型定义
****************************************************************************************/
union buf_union
{
	uint buf1;
	uchar buf2[2];
};

union reg_n_buf
{
	ulong buf1;
	uchar buf2[4];
	uint buf3[2];
};
struct data_struct
{
	//uchar ID_L;
	//uchar ID_H;
//	uchar TYPE;//协议类型
	uchar ADDR;//模块地址
	uchar ATT1;//衰减1
	uchar ATT2;//衰减2
	uchar ACTATT1;//衰减1的实际值
	uchar ACTATT2;//衰减2的实际值
	uchar BUTTON1;//功放开关1
	uchar BUTTON2;//功放开关2
	//uchar BUTTON3;//功放开关3
	//uchar BUTTON4;//功放开关4
	uchar VGS1_L;//第一个管子第一级栅压低字节
	uchar VGS2_L;//第二个管子第一级栅压低字节
	uchar VGS3_L;//第一个管子第二级栅压低字节
	uchar VGS4_L;//第二个管子第二级栅压低字节
	uchar VGS1_H;
	uchar VGS2_H;
	uchar VGS3_H;
	uchar VGS4_H;
	uchar PC1;//最大输出功率
	uchar PC1U_L;
	uchar PC1U_H;
	
	uchar PC2;//最大输出功率
	uchar PC2U_L;
	uchar PC2U_H;
	uchar ACTVPL[6];//数组[0]为栅压1的实际值低字节.....数组[5]为PCU2的实际值低字节;
	uchar ACTVPH[6];//数组[0]为栅压1的实际值高字节.....数组[5]为PCU2的实际值高字节;
	uchar FREQ1_L;//上行本振控制1低字节
	uchar FREQ3_L;//上行本振控制3低字节
	uchar FREQ1_H;
	uchar FREQ3_H;	
	char TEMP;
	uchar TEMPU_L;
	uchar TEMPU_H;
	uchar V28_L;
	uchar V28_H; 
	uchar V28U_L;
	uchar V28U_H;
	uchar PWR1; 
	uchar PWR1U; 
	uchar PWR2;
	uchar PWR2U;
	uchar ID1;//功放管1第1级电流检测低字节
	uchar ID1U;
	uchar ID1ST;
	uchar ID2;//功放管2第1级电流检测低字节
	uchar ID2U;
	uchar ID2ST;
	uchar ID3;//功放管1第2级电流检测低字节
	uchar ID3U;
	//uchar ID3ST;
	uchar ID4;//功放管1第2级电流检测低字节
	uchar ID4U;
//	uchar ID4ST;
	uchar PLL_STATE1;//本振锁定指示1
	uchar PLL_STATE3;//本振锁定指示3
	uchar  POFFSET1;
	uchar  POFFSET2;
	uchar  POFFSET3;
	uchar  POFFSET4;
	
	uchar GCUTPBC;//增益1、2的温度补偿参数
	uchar VTPBC;//栅压1、栅压2、3、4或输出功率电压的温度补偿参数	
//	uchar FREQTPBC;//本振1的温度补偿参数

	uchar PWR1BC;//前向功率1检测补偿(dB)	
	uchar PWR2BC;//前向功率2检测补偿(dB)	
	
	uchar GCUBC;//增益1、2的标称值补偿
	
	uchar FQGCUBC;//频响1\2补偿
	
//	uchar PROTL_ETN;  //协议版本
};
/*********************************************************************************
                             内部变量
***********************************************************************************/ 
static struct data_struct bank2 Prmter1;
uint bank2 chushi;
char  tempinit;//温度初始值
union buf_union vbuf;
uint tempbuf;
uchar tempcheck;//=0,为刚上电初始化,=1,为已进行过一次温度检测
uchar B[3];//B[0],B[1]为EEPROM中补偿值,B[2]为实际的补偿值
uint bank2 idbuf1,idbuf2,idbuf3,idbuf4;
uchar bank2 id1_cnt,id2_cnt,id3_cnt,id4_cnt,temp_cnt;
uint  FR1,FR3;//FR1=FREQ1_L+FREQ1_H,都是总的信道号
uchar bank2 PLL_count11,PLL_count12;
//PLL_count11,PLL_count21为锁定状态记数;PLL_count22,PLL_count22为失锁状态记数
uchar bank2 PLL_count31,PLL_count32;
//PLL_count31,PLL_count31为锁定状态记数;PLL_count42,PLL_count42为失锁状态记数
uchar PLL_count1,PLL_count3;//锁相环循环次数计数器
uchar erro; 
/********************************
bit 0	    查询出错
bit 1       设置出错
********************************/
uchar porta_wbuf,portb_wbuf,portc_wbuf,portd_wbuf,porte_wbuf;
//uchar alarm_time_cnt;
uchar dog_soft;
uchar bank1 receive_buf[BUF_LENGTH];
uchar receive_over;   //接收是否完成标志:1 接收完成   0 接收未完成
uchar receive_time_on;  //接收超时定时器开关  1 打开  0关闭
uchar receive_time_count; //接口超时定时计数器
uchar receive_cnt;       //发送或者接收的字节数
uchar  headend_flag;//接收到包头标志1:接收到包头,2:接收到包尾,0:没收到包头.
uchar  tran_flag;//转义处理标志位,1:进行了0X4E的转义处理(将0X4E转义为0X5E,0X4D);0:未进行转义处理
//uchar  datend_flag;//接收到包尾包尾标志1:接收到包尾,0:没收到包尾.
//uchar receive_cnt1;       //发送或者接收的字节数
uchar pChecksum[2];
uchar err_eeprom;
//auto union buf_union receive_tran;//转义处理
/********************************************************************************
 							内部固定函数
**********************************************************************************/
void init();
void dog();
//void DAC(uchar addr,uchar buf);
void DAC(uchar addr,uchar dac_H,uchar dac_L);
void init_mcu();
void init_menu();
void delay_unit(uint buf); 
void sign_collect();
void init_sign_ctl();
void delay_Tad(uchar j);
uchar adc_read(uchar buf);
void init_serial();
void serial_data();
void CheckCRC(uchar *pData, uchar nDataLength,uchar start, uchar *pChecksum);
void interrupt int_process(void);
//void byte_combine(uchar *pdata,uchar length,uchar start);
//void byte_divide(uchar *pdata,uchar length,uchar start);
void receive_free();
void send_reply_flag(uchar reply_flag,uchar length);
void init_eeprom(void);
uchar Query_Address();
//uchar Query_Basic_Parameter();
uchar Set_Basic_Parameter();
uchar Set_Parameter();
//uchar Query_Parameter();
/***************************************************************************
表格通信函数
***************************************************************************/
//uchar Query_temp();//查询温度值
//uchar Query_freq();//查询频率值
//uchar Query_att();//查询标称值
//uchar Query_tempcsd();//查询所有温补参数编码
//uchar Query_freqcsd();//查询所有频补参数编码
//uchar Query_bczcsd();//查询所有标称值补偿参数编码
//uchar Query_tempcszd();//查询所有温补参数表内容
//uchar Query_freqcszd();//查询所有频补参数表内容
//uchar Query_bczcszd();//查询所有标称值补参数表内容
//uchar Set_temp();//设置温度值
//uchar Set_freq();//设置频率值
//uchar Set_att();//设置标称值
//uchar Set_tempcszd();//设置所有温补参数表内容

⌨️ 快捷键说明

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