
/**************************************************************************************************
 * LCD Module(Һģ)Һֵ裬˿ͼLCD Moduleй
 * ӿڵĶ塣
 *	   _________
 *				|
 *			 PD0|-->SCK		ʱ
 *			 PD3|-->SDA		ݴ
 *	TIVA  	 PB1|-->CS		͵ƽƬѡ
 *			 PC6|-->CD		/ָĴ
 *			 PE5|-->RST		͵ƽλ
 *			 	|
 *			 PC7|<--Button1
 * 			 PD6|<--Button2
 * 			 PD7|<--Button3
 * 			    |
 * 			 PE0|<--ADC		ֵADC
 *		________|
 *
 *
 *
 ***************************************************************************************************/
#ifndef LCD_H_
#define LCD_H_

//------------------------------------------------------------------------------------------------

#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"

//---------------------------------------------------------------------------
#define LCD_DRAW_NORMAL				0		// ʾ
#define LCD_DRAW_HIGHLIGHT				1		// ʾ
#define LCD_MAX_RAW					4		// Һ
#define LCD_MAX_COL					120		// Һ
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
//öٱҺж
enum
{
	LINE_ONE,
	LINE_TWO,
	LINE_THREE,
	LINE_FOUR,

	LINE_NUM
};

//öٱҺ
enum
{
	DIRECTOR_RAW,
	DIRECTOR_COL,

	DIRECTOR_NUM
};

enum
{
	SSI1_UNITS = 101,
	SSI1_TENS = 85,
	SSI1_HUNDREDS = 69,
	SSI1_THOUSANDS = 53
};//cursor_define_for_MDAC;

#define CHAR_WIDTH			8				//ַ
#define WORD_WIDTH			16				//ֿ
//---------------------------------------------------------------------------

//------------------------------------------------------------------------------------------------

/**************************************************************************************************
 *
 * ܽӿڶ壬нӿں£LCDģ麯ӿڣģӿԼֵģ鹦ܽӿ
 * 2ʱʱΪLCDģ顣
 *
 **************************************************************************************************/

/*
 * LCD_ScreenClr
 * ÷LCD_ScreenClr();
 * ------------------------------------
 * LCD
 */
void LCD_ScreenClr();

/*
 * LCD_Enable
 * ÷LCD_Enable();
 * ------------------------------------
 *  ʹLCDõĶ˿
 */
void LCD_Enable();

/*
 * LCD_Delay_LongTime
 * ÷LCE_Delay_LongTime(LongTime);
 * ------------------------------------------
 * нϳʱʱ
 */
void LCD_Delay_LongTime(unsigned int LongTime);

/*
 * LCD_Delay_ShortTime
 * ÷LCD_Delay_ShortTime(ShortTime);
 * -------------------------------------------
 * н϶ʱʱ
 */
void LCD_Delay_ShortTime(unsigned int ShortTime);

/*
 * LCD_TransferData
 * ÷LCD_TransferData(data);
 * ---------------------------------------
 * LCDdataΪģ
 */
void LCD_TransferData(unsigned char data);

/*
 * LCD_TransferCmd
 * ÷LCD_TransferCmd(command);
 * --------------------------------------------
 * LCDָ
 */
void LCD_TransferCmd(unsigned char command);

/*
 * LCD_Init
 * ÷LCD_Init();
 * ------------------------------------
 * LCDʼ
 */
void LCD_Init();

/*
 * LCD_Draw_Char
 * ÷char = LCD_Draw_Char(c,page,col);
 * ---------------------------------------
 * LCDʾһַ8*16ģС
 */
unsigned char LCD_Draw_Char(char c,unsigned char page,unsigned char col);

/*
 * LCD_Draw_Byte
 * ÷LCD_Draw_Byte(b_invert);
 * ---------------------------------
 * LCDʾһֽڣ8*8ģС
 */
void LCD_Draw_Byte(bool b_invert);

/*
 * LCD_Draw_Chinese
 * ÷char = LCD_Draw_Chinese(index,raw,col);
 * ---------------------------------------
 * LCDʾ֣16*16ģС
 */
unsigned char LCD_Draw_Chinese(unsigned char index, unsigned char raw,unsigned char col);

/*
 * LCD_matrixChange
 * ÷LCD_MatriChange(*p_Char);
 * -----------------------------------------
 * LCD仯
 */
void LCD_MatrixChange(unsigned char * p_Char);

/*
 * LCD_InvertLight_All
 * ÷LCD_InvertLight_All();
 * ---------------------------------------
 * LCDת
 */
void LCD_InvertLight_All();

/*
 * DispalyGraphicl
 * ÷DisplayGraphic1();
 * ----------------------------------
 * ȫʾͼ
 */
void DisplayGraphic1();

/*
 * Init_Key
 * ÷Init_Key();
 * ------------------------------------
 * ʼģ
 */
void Init_Key();

/*
 * scan_key
 * ÷char = scan_key();
 * -----------------------------------
 * ɨ
 */
unsigned char scan_key(void);


#define ADC_BASE				ADC0_BASE			//ADC0_BASE
#define ADCWheel_Sequence		0					//ADCWheelУ0SS0
#define ADCMAX					4096
#define ADCREFVOLTS			3300
/*
 * Init_ADCWheel()
 * ÷Init_ADCWheel();
 * ----------------------------
 * ʼֵ蹦ģ
 */
void Init_ADCWheel();

/*
 * ADCWheel_ValueGet
 * ÷ ADCWheel_ValueGet(&pui32ADCValue);
 * ----------------------------------------
 * ȡADֵ
 */
void  ADCWheel_ValueGet(uint32_t *pui32ADCValue);


#endif
//-------------------------------------------------------------------------------------------------
