#ifndef _DRV_LCD_H
#define _DRV_LCD_H

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 變量接口 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// 主要數字區域
static volatile __16_type Display_LCD_Map[16]    __attribute__ ((at(0x400)));   // SEG0~45


// power
#define SET_LCD_POWER(x)            	   { _lcden = x; }
#define SET_LCD_C_TYPE_POWER_PLCD_V1_V2()  { _lcdp1 = 0; _lcdp0 = 0;} // PLCD(3/2*VIN)  V1(VIN)  V2(3*VIN)
#define SET_LCD_C_TYPE_POWER_VC()          { _lcdp1 = 0; _lcdp0 = 1;} // 3*VIN=3*1.08=3.24V
#define SET_LCD_C_TYPE_POWER_VB()          { _lcdp1 = 1; _lcdp0 = 0;} // 3/2*VIN = 3/2*3=4.5V
#define SET_LCD_C_TYPE_POWER_VA()          { _lcdp1 = 1; _lcdp0 = 1;} // VIN = VDD

// LCD Waveform Type
#define SET_LCD_TYPE_A()            { _type = 0; }  // Suggestions
#define SET_LCD_TYPE_B()            { _type = 1; }  // B 型?低的?率可能引起??，?而影響顯示的清晰度。

// LCD 偏壓 Type
#define SET_LCD_TYPE_R()            { _rct = 0; }  
#define SET_LCD_TYPE_C()            { _rct = 1; }  

// duty & bias
#define SET_LCD_4DUTY()   { _dtyc1 = 0;_dtyc0 = 0;}    // 1/4 Duty 3Bias(COM0~COM3)
#define SET_LCD_6DUTY()   { _dtyc1 = 0;_dtyc0 = 1;}    // 1/6 Duty 3Bias(COM0~COM5)
#define SET_LCD_8DUTY()   { _dtyc1 = 1;_dtyc0 = 1;}    // 1/8 Duty 3Bias(COM0~COM7)

// LCD bais 
#define SET_LCD_3BIAS()            { _bias = 0; }  		
#define SET_LCD_4BIAS()            { _bias = 1; }  


// C type LCD Pump Clock
#define SET_LCD_CLOCK_250HZ()       {_lcdpck2 = 0;_lcdpck1 = 0;_lcdpck0 = 0;}
#define SET_LCD_CLOCK_500HZ()       {_lcdpck2 = 0;_lcdpck1 = 0;_lcdpck0 = 1;}
#define SET_LCD_CLOCK_1KHZ()        {_lcdpck2 = 0;_lcdpck1 = 1;_lcdpck0 = 0;}
#define SET_LCD_CLOCK_2KHZ()        {_lcdpck2 = 0;_lcdpck1 = 1;_lcdpck0 = 1;}
#define SET_LCD_CLOCK_4KHZ()        {_lcdpck2 = 1;_lcdpck1 = 0;_lcdpck0 = 0;}
#define SET_LCD_CLOCK_8KHZ()        {_lcdpck2 = 1;_lcdpck1 = 0;_lcdpck0 = 1;}
#define SET_LCD_CLOCK_16KHZ()       {_lcdpck2 = 1;_lcdpck1 = 1;_lcdpck0 = 0;}
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 共用函數 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
void Drv_LCD_Display_All();
void Drv_LCD_Display_Clear();
void Drv_LCD_Init();
void Drv_LCDDisplayUpdate();
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 共用變量 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
extern volatile unsigned char DisplayBCDBuf[6];

#endif

