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

📄 extern_declarations.h

📁 Analog 公司 ADE7169 SOC 电表方案DEMO程序
💻 H
字号:
/*
-02/23/2006: Petre M.
  -this file contains the extern declarations used throughout the program

*/

#include "structures.h"
#include "system_def.h"


#define Bit0 0x01
#define Bit1 0x02
#define Bit2 0x04
#define Bit3 0x08
#define Bit4 0x10
#define Bit5 0x20
#define Bit6 0x40
#define Bit7 0x80

#define NBit0 0xfe
#define NBit1 0xfd
#define NBit2 0xfb
#define NBit3 0xf7
#define NBit4 0xef
#define NBit5 0xdf
#define NBit6 0xbf
#define NBit7 0x7f

#define Nr_Bytes_1 1
#define Nr_Bytes_2 2
#define Nr_Bytes_3 3
#define Nr_Bytes_4 4
#define Nr_Bytes_5 5

#define Blink_1Hz 0
#define Blink_500mHz 1
#define Blink_333mHz 2
#define Blink_250mHz 3

#define End_Byte_7 0x55
#define End_Byte_8 0xaa
#define End_Byte_9 0x55
#define End_Byte_10 0xaa

#define WD_15_6msec 0
#define WD_31_2msec 1
#define WD_62_5msec 2
#define WD_125msec  3
#define WD_250msec  4
#define WD_500msec  5
#define WD_1sec     6
#define WD_2sec     7


//these definitions are used in lcd.c to introduce the desired number of fractional digits
#define Fract_Digits_0 0
#define Fract_Digits_1 1
#define Fract_Digits_2 2
#define Fract_Digits_3 3
#define Fract_Digits_4 4

//because this variable is located at absolute address 0x21, it is not
//necessary to declare it in rtc.h
  extern __no_init __idata struct Date_struct Date @ 0x21;
  extern __no_init __idata struct Five_Bytes_struct Active_Energy @ 0x25;

  //I_1A_threshold=1000/Ratio*2^16 = a number on 16 bits
  //Ratio is a number representing the number of bits correspondign to 1Amp
  extern __no_init __idata int I_1A_threshold @ 0x2a;

  //V_1V_threshold=100/Ratio*2^16 = a number on 16 bits
  //Ratio is a number representing the number of bits corresponding to 1V
  extern __no_init __idata int V_1V_threshold @ 0x2c;


  extern __idata char Low_Priority_Command[1];
  extern __idata char LCD_Command[1];
  extern __idata char Command_Status[1];

  extern __idata char N;
  extern __idata int X;
  extern __idata unsigned char __idata  *I2C_ptr;
  extern __idata char I2C_Status;
  extern __idata struct Five_Bytes_struct Reactive_Energy, Apparent_Energy;
  extern __idata char LCD_buffer[15];
  extern __code const char Digit_Table[10];


  extern __code const char Months[12];
  extern __idata unsigned char Meter_Errors[1];


  extern __idata unsigned char Fault_Days;
  extern __idata  char LCD_Digits[9];
  extern __idata unsigned char CF2_Frac, New_CF2_Counter;
  extern __idata char Temporary[8], Temporary1[8];

  extern __code const char Default_Ac_Energy[5];
  extern __code const char Default_Re_Energy[5];
  extern __code const char Default_Ap_Energy[5];
  extern __code const char Default_Date[4];
  extern __code const unsigned char Default_Fault_Days;

  extern __idata unsigned char UART_Rx[11];
  extern __idata unsigned char __idata *UART_ptr;
  extern void (* __idata UART_func_ptr)(void);
  extern __code const int Table_UART[];
  extern __code const int Table_LCD[5];
  extern __idata signed char LP_Task;
  extern __code const int Table_LP_Func[];

  extern void I2C_Do_nothing(void);
  extern void Rx_CTRL_byte(void);
  extern void Rx_byte(void);
  extern void Tx_page(char Nr_Bytes, int EEPROM_address,unsigned char __idata  *Pointer);
  extern void Tx_CTRL_byte(char Nr_Bytes, int EEPROM_address,unsigned char __idata  *Pointer);
  extern void Tx_byte(char Nr_Bytes, int EEPROM_address,unsigned char __idata  *Pointer);
  extern void Tx_page2(void);
  extern void Setup_LCD(void);
  extern void Setup_LCD_PSM1(void);
  extern void Display_to_LCD(void);
  extern void Irms_threshold_read(void);
  extern void Vrms_threshold_read(void);
  extern void Blink_LCD(char BLKFREQ);
  extern void Setup_Watchdog(char PRE);
  extern void Refresh_Watchdog(void);
  extern void Clear_flag(char NBit, char __idata  *iram_ptr);
  extern void Clear_2_flags(char NBit_1, char __idata  *iram_ptr1,char NBit_2,
                            char __idata  *iram_ptr2 );
  extern void Set_flag(char Bit, char __idata  *iram_ptr);
  extern void Display_Something(void);
  extern void Manage_Numbers(char Nr_Fract_Digits);
  extern void Manage_Time(void);
  extern void Manage_Display(void);
  extern void Decide_LCD_command(void);
  extern void Setup_Ext_Int(void);
  extern void INT0_Interrupt(void);
  extern void Manage_LCD_commands(void);
  extern void Active_Energy_Display(void);
  extern void IRMS_Display(void);
  extern void VRMS_Display(void);
  extern void Date_Display(void);
  extern void Display_Time_Date(char __idata *iram_ptr1);
  extern void Store_time(char __idata *ptr);
  extern void Calendar_write(void);
  extern void Calendar_read(void);
  extern void ADE_Interrupt(void);
  extern void Reload_Energy(void);
  extern void Setup_Energy(void);
  extern void Accumulate_Energy(void);
  extern void Reload_from_EEPROM(void);
  extern void Active_Energy_read(void);
  extern void Active_Energy_write(void);
  extern void Tx_High_Importance(char Nr_Bytes, int EEPROM_address,unsigned char __idata  *Pointer);
  extern void Tx_Low_Importance(char Nr_Bytes, int EEPROM_address,unsigned char __idata  *Pointer);
  extern void Disable_Watchdog(void);
  extern void Meter_Calibration(void);
  extern void Write_ADE_SFR(char ByteM, char ByteL, char Register);
  extern void Read_ADE_SFR(unsigned char __idata *Pointer, char Register);

  extern void End_message_bytes(char a, char b, char c, char d);
  extern void End_Low_Priority_Tasks(void);

  extern void Bin2bcd(void);
  extern void Display_Number(char Nr_Fract_Digits, unsigned int unit_ratio);
  extern void Comp_Nibbles(void);
  extern void Comp_Nibbles2(void);
  extern void mult24x16(void);

⌨️ 快捷键说明

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