#define LCD_CMD_CLEAR 1

#define LCD_CMD_RETURN 2

#define LCD_CMD_CGRAM 64

#define LCD_CMD_DDRAM 128

#define LCD_CMD_ENTMODE 4
#define LCD_CMD_ENTMODE_INCREMENT 2
#define LCD_CMD_ENTMODE_SHIFT 1
#define LCD_CMD_ENTMODE_DECREMENT 0
#define LCD_CMD_ENTMODE_NOSHIFT 0

#define LCD_CMD_DISPMODE 8
#define LCD_CMD_DISPMODE_ENTIRE_ON 4
#define LCD_CMD_DISPMODE_CURSOR_ON 2
#define LCD_CMD_DISPMODE_BLINK_ON 1
#define LCD_CMD_DISPMODE_ENTIRE_OFF 0
#define LCD_CMD_DISPMODE_CURSOR_OFF 0
#define LCD_CMD_DISPMODE_BLINK_OFF 0

#define LCD_CMD_SHIFT_TOLEFT (16+8)
#define LCD_CMD_MOVE_TOLEFT (16)
#define LCD_CMD_SHIFT_TORIGHT (16+8+4)
#define LCD_CMD_MOVE_TORIGHT (16+4)

#define LCD_CMD_FUNCTION 32
#define LCD_CMD_FUNCTION_2LINES 8
#define LCD_CMD_FUNCTION_1LINE 0
#define LCD_CMD_FUNCTION_5X10 4
#define LCD_CMD_FUNCTION_8X10 0

void LCDsendcmd( uint8_t c );
void LCDsendchar( uint8_t c );
void LCDinit();
void WriteLCD(char* data, unsigned char x, unsigned char y);
void LCDGotoXY(uint8_t x, uint8_t y);
void ClearLCD();

