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

📄 common.h

📁 ADI公司的关于光通讯模块的监控程序,在KEIL FOR ARM 的编译环境编译.程序大小约12K,芯片是ADu7020.
💻 H
字号:
// common.h

/********************************************************************/
/*                                                                  */
/*      user macro                                                  */
/*                                                                  */
/********************************************************************/

/*------------ Debug configuration ------------
DEBUG=0: ADuC7020 sfp board
DEBUG=1: ADuC7020 eval board
DEBUG=2: ADuC7024 eval board
----------------------------------------------*/
#define DEBUG 0                     // 0 to 2  


/*------------ Timing configuration ------------
FLASH_TIME: FlashEE update time = 50msec * number 
ER_COMP_TIME: ER compensation update time = 50mec * number
------------------------------------------------*/
#define FLASH_TIME      1200        // 0 to 65535
#define ER_COMP_TIME    10          // 0 to 65535



// On-Chip temperature sensor
#define T_SLOPE ((unsigned short int)(610e-6 / VTC * 256))
#define VTC     1.3e-3         // Temperature Sensor voltage TC


// user macro
#define TRUE 1
#define FALSE 0
#define HIGH 1
#define LOW 0

// ADC bug fix #er002
#define ADC_HIGH_MAX        4085

// Flash
#define FLASH_UPDATE_CNT    A2h[128]
#define FORCE_FLASH_UPDATE  A2h[129]
#define FLASH_INIT_ENABLE   A2h[130]

// TxPowMon
#define TXPOW_MON_ENABLE   A2h[131]


// ER comensation
#define ER_CON              A2h[144]
#define ER_COMP_ENABLE      A2h[145]
#define ER_SLOPE_MSB        A2h[146]
#define ER_SLOPE_LSB        A2h[147]
#define ER_OFFSET_MSB       A2h[148]
#define ER_OFFSET_LSB       A2h[149]
#define TXMOD_RAWDAT_MSB    A2h[150]
#define TXMOD_RAWDAT_LSB    A2h[151]

// DDM ADI Exclusive
#define TXMOD_MSB           A2h[120]
#define TXMOD_LSB           A2h[121]
#define REF_TXPOW_MSB       A2h[122]
#define REF_TXPOW_LSB       A2h[123]
#define REF_IMPD_MSB        A2h[124]
#define REF_IMPD_LSB        A2h[125]
#define PD_RESPONSIVITY     A2h[126]
#define SYSTEM_CONFIG       A2h[127]

#define PAV_MSB             A2h[248]
#define PAV_LSB             A2h[249]
#define ER_MSB              A2h[250]
#define ER_LSB              A2h[251]
#define REF_TEMP_MSB        A2h[252]
#define REF_TEMP_LSB        A2h[253]
#define REF_ADCDAT_MSB      A2h[254]
#define REF_ADCDAT_LSB      A2h[255]

/********************************************************************/
/*                                                                  */
/*      user type                                                   */
/*                                                                  */
/********************************************************************/
typedef unsigned char       BYTE;       //8-bit
typedef unsigned short int  HALFWORD;   //16-bit
typedef unsigned int        WORD;       //32-bit

/********************************************************************/
/*                                                                  */
/*      global variables                                            */
/*                                                                  */
/********************************************************************/
extern unsigned char A0h[];
extern unsigned char A2h[];

extern unsigned char i2c_first;
extern unsigned char i2c_receive;
extern unsigned char dac_update;

/********************************************************************/
/*                                                                  */
/*      function prototype                                          */
/*                                                                  */
/********************************************************************/
//void IRQ_Function(void);
//void FIQ_Function(void);

void FIQ_Handler(void) __fiq;
void IRQ_Handler(void) __irq;


void delay(int);
void sff8472_table(void);
void SetDac(unsigned char channel);
void i2c(void);
void i2c_write(unsigned char i2c_addr, unsigned char byte_addr, unsigned char rx_data);
void i2c_read(unsigned char i2c_addr, unsigned char byte_addr);
void temp_monitor(void);
void voltage_monitor(void);
void tx_bias_monitor(void);
void tx_mod_monitor(void);
void tx_pow_monitor(void);
void rx_pow_monitor(void);
void temp_diag(unsigned char msb, unsigned char lsb, unsigned char addr);
void voltage_diag(unsigned char msb, unsigned char lsb, unsigned char addr);
void tx_bias_diag(unsigned char msb, unsigned char lsb, unsigned char addr);
void tx_power_diag(unsigned char msb, unsigned char lsb, unsigned char addr);
void rx_power_diag(unsigned char msb, unsigned char lsb, unsigned char addr);
void fault_recovery_check(void);
void InitCPU(void);
void monitor(void);
void diag(void);
void InitPLL(void);
unsigned char flash_read(unsigned short int addr);
void flash_write(unsigned short int addr, unsigned char data);
void flash_erase(unsigned short int addr);
void InitFlash(void);
void FlashUpdate(unsigned char addr);
void InitSFF8472(void);
void ErCalibration(BYTE mode);
void ErCompensation(void);
void Checksum(unsigned char addr);
BYTE WriteProtect(BYTE i2c_addr, BYTE byte_addr);
void check_los_ratesel(void);
void InitI2c(void);
void InitLdd(void);
HALFWORD adc(BYTE adc_ch);

⌨️ 快捷键说明

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