?? lna3.h
字號:
/****************************************************************************************
定義變量時,數(shù)組定義在BANK0和BANK1
其余變量定義在BANK2和BANK3。
BANK0是編譯器默認(rèn)的局部變量定義范圍,盡量不要使用
******************************************************************************************/
/*****************************************************************************************
宏定義
******************************************************************************************/
#include "pic.h"
#define _nop() { asm("NOP");}
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//#define MOD_ID_L 1 //模塊ID號低字節(jié)
//#define MOD_ID_H 0 //模塊ID號高字節(jié)
#define PWR_CNT 20
#define TEMP_CNT 20
#define V7_CNT 20
#define ID_CNT 100
#define IIC_DELAY 15
#define BUF_LENGTH 80
#define PROTL 0x02 //協(xié)議版本
#define TYPE 0x01 //協(xié)議類型
//#define CTR_CNT 20
#define MOD_Num 19
#define MOD_ADDR 1
#define Para_Num 57
//#define Basic_Para_Num 1
//溫補參數(shù)有3個:輸出功率電壓控制、ATT1、ATT2,輸出功率檢測補償值(DBM)
#define tn 3//此模塊中溫補參數(shù)個數(shù)(包括控制項與檢測項 增益1、增益2、輸出功率電壓控制、輸出功率電壓檢測)
//#define tnzj 3//此模塊中某溫度下溫補參數(shù)占多少字節(jié)(與tn不同,因為柵壓控制補償實際值參數(shù)占兩個字節(jié))
#define pn 0//此模塊中頻響補償實際值參數(shù)個數(shù)
#define zyn 2//此模塊中增益補償實際值參數(shù)個數(shù)
#define tpnumb 30//溫度劃分段數(shù)30段
#define fnumb 30//頻率劃分段數(shù)30段
#define bcnumb 32//標(biāo)稱值劃分段數(shù)32段
#define tempd 0x0100//溫度值在EEPROM中首地址(即溫度值1的EEPROM地址,共30個溫度值,占30個字節(jié))
#define freqd 0x0120//頻率值在EEPROM中首地址(即頻率值1的EEPROM地址,共30個頻率值,占60個字節(jié))
#define bczd 0x0140//標(biāo)稱值在EEPROM中首地址(即標(biāo)稱值1的EEPROM地址,共32個標(biāo)稱值,占30個字節(jié))
#define tempcsd 0x0190//溫補參數(shù)編碼在EEPROM中首地址(即溫補參數(shù)1編碼的EEPROM地址)編碼為補償參數(shù)在標(biāo)準(zhǔn)化協(xié)議中的地址
#define freqcsd 0x0200//頻補參數(shù)編碼在EEPROM中首地址(即頻補參數(shù)1編碼的EEPROM地址)編碼為補償參數(shù)在標(biāo)準(zhǔn)化協(xié)議中的地址
#define bczcsd 0x0230//標(biāo)稱值補償參數(shù)編碼在EEPROM中首地址(即標(biāo)稱值補償參數(shù)1編碼的EEPROM地址)編碼為補償參數(shù)在標(biāo)準(zhǔn)化協(xié)議中的地址
#define tempcszd 0x0260//溫補參數(shù)值在EEPROM中首地址(即溫補參數(shù)值1的EEPROM地址)
#define freqcszd 0x0500//頻補參數(shù)值在EEPROM中首地址(即頻補參數(shù)值1的EEPROM地址)
#define bczcszd 0x0600//標(biāo)稱值補償參數(shù)值在EEPROM中首地址(即標(biāo)稱值補償參數(shù)值1的EEPROM地址)
/**************************************************************************************
數(shù)據(jù)類型定義
****************************************************************************************/
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 max; //最大輸出功率控制
char GCU1; //數(shù)控衰減控制1
char GCU2; //數(shù)控衰減控制2
char PWR; //輸出功率檢測參數(shù)
uchar alm; //低噪放過功率告警參數(shù)
uchar ctr; //功率控制深度檢測參數(shù)
uchar v7L; //+7V電壓檢測參數(shù)低字節(jié)
uchar v7H; //+7V電壓檢測參數(shù)高字節(jié)
char TEMP; //溫度檢測參數(shù)
uchar maxu; //最大輸出功率控制電壓值低字節(jié)
uchar POFFSET1;
uchar POFFSET2;
//uchar BB; //最大輸出功率校準(zhǔn)電壓值
uchar CTRU; //功率控制深度檢測電壓值低字節(jié)
uchar CTRBB;//控制深度偏置值
uchar v7U; //+7v電壓檢測電壓值低字節(jié)
uchar PWRU; //輸出功率檢測電壓值低字節(jié)
uchar TEMPU; //溫度檢測電壓值低字節(jié)
uchar IDU;//電流檢測電壓值低字節(jié)
uchar ID1;//電流檢測值
uchar IDST;
uchar ADDR; //模塊地址
// uchar PROTL_ETN;//協(xié)議版本
// uchar GCU1JZ;//數(shù)控衰減1校準(zhǔn)值
// uchar GCU2JZ;//數(shù)控衰減2校準(zhǔn)值
uchar MAXUJZ;//最大輸出功率控制電壓的校準(zhǔn)(溫補)
char PWRJZ;//功率檢測值溫度補償值
};
/*********************************************************************************
內(nèi)部變量
***********************************************************************************/
uchar B[3];//B[0],B[1]為EEPROM中補償值,B[2]為實際的補償值
uchar v7_buf[2],pwr_buf[2];
uchar sumgcu;//總衰減數(shù)
uint chushi;//定時器中斷計數(shù)器
char tempinit;//溫度初始值
uchar tempcheck;//=0,為剛上電初始化,=1,為已進(jìn)行過一次溫度檢測
uint idbuf,tempbuf;
uchar pwr_cnt,temp_cnt,v7_cnt,id_cnt;
uchar erro;
/********************************
bit 0 查詢出錯
bit 1 設(shè)置出錯
********************************/
uchar porta_wbuf,portb_wbuf,portc_wbuf,portd_wbuf,porte_wbuf;
uchar receive_over; //接收是否完成標(biāo)志:1 接收完成 0 接收未完成
uchar receive_time_on; //接收超時定時器開關(guān) 1 打開 0關(guān)閉
uchar receive_time_count; //接口超時定時計數(shù)器
uchar receive_cnt; //發(fā)送或者接收的字節(jié)數(shù)
uchar tran_flag;//轉(zhuǎn)義處理標(biāo)志位,1:進(jìn)行了0X4E的轉(zhuǎn)義處理(將0X4E轉(zhuǎn)義為0X5E,0X4D);0:未進(jìn)行轉(zhuǎn)義處理
uchar headend_flag;//接收到包頭標(biāo)志1:接收到包頭,2:接收到包尾,0:沒收到包頭.
uchar pChecksum[2];
uchar err_eeprom;
uchar dog_soft;
static uchar bank1 receive_buf[BUF_LENGTH];
//static uchar bank2 receive_buf1[BUF_LENGTH];
static struct data_struct bank2 Prmter1;
/********************************************************************************
內(nèi)部固定函數(shù)
**********************************************************************************/
void init();
void dog();
void init_mcu();
void init_menu();
void sign_collect();
void init_sign_ctl();
void gcu_ctl(uchar ctbuf,char gcubuf);
void max_ctl();
void delay_Tad(uchar j);
uchar adc_read(uchar buf);
void delay_unit(uint 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();
/***************************************************************************
表格通信函數(shù)
***************************************************************************/
uchar Set_tp(uint fstadr);//設(shè)置溫度值或頻率信道號
uchar Query_tp(uint fstadr,uchar bytenumb);//設(shè)置溫度值或頻率信道號
uchar Query_csd(uchar adsnumb,uchar bubuf );//查詢所有溫補、標(biāo)稱值補償、頻響補償參數(shù)編碼,編碼占2個字節(jié)
uchar Set_cszd(uint firstadr,uchar bubuf);//設(shè)置所有溫補、標(biāo)稱值補償、頻響補償參數(shù)表內(nèi)容,所有補償參數(shù)占1個字節(jié)
uchar Query_cszd(uint firstadr,uchar bubuf);//查詢所有溫補、標(biāo)稱值補償、頻響補償參數(shù)表內(nèi)容,所有補償參數(shù)占1個字節(jié)
/********************************************************************************
內(nèi)部配置函數(shù)
**********************************************************************************/
uchar TEMP(uchar tempnb);//溫補函數(shù)
uchar ATTBU(char attin,uchar attnb);//增益標(biāo)稱值補償函數(shù)
//uchar FREQBU(uchar freqin,uchar freqnb);//頻響補償
void CHECK_PWR(); //輸出功率檢測和過功率告警檢測
//void CHECK_ALM(); //過功率告警檢測
void CHECK_ctr(); //功率控制深度檢測參數(shù)
void CHECK_v7(); //+7V電壓檢測參數(shù)
void CHECK_temp(); //溫度電壓檢測參數(shù)
void CHECK_id();
void gcu_jz(); //增益校準(zhǔn)函數(shù);
void DAC(uchar addr,uchar buf);
void wrom(uint addr,uchar buf);
uchar rrom(uint addr);
void iic_delay();
void iic_star();
void iic_stop();
void iic_send(uchar buf);
uchar iic_get();
uchar iic_ack();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -