TivaC Lcd Driver for 1602A LCD controller
A c++ driver for interfacing the TivaC with the 1602A LCD controller
lcd_include.hpp
Go to the documentation of this file.
1 
10 #ifndef _LCD_INCLUDE_HPP
11 #define _LCD_INCLUDE_HPP
12 
13 #define MAX_LCD_X 15
14 #define MAX_LCD_Y 1
15 
16 /* Timing Variable */
17 
18 #define COM_TIME_SCALER \
19  7000
20 
22 // waiting phase time
23 #define LCD_WARM_UP_TIME_NANOSEC 49000000
24 #define LCD_FIRST_INIT_TIME_NANOSEC 4500000
25 #define LCD_SECOND_INIT_TIME_NANOSEC 150000
26 
27 // data cycle time
28 #define LCD_PULSE_WIDTH_NANOSEC 200 * COM_TIME_SCALER
29 #define LCD_MIN_CYCLE_TIME_NANOSEC \
30  410 * COM_TIME_SCALER
31 
32 // setup and hold time
33 // for writing
34 #define LCD_DATA_SETUP_TIME_NANOSEC \
35  45 * COM_TIME_SCALER
36 #define LCD_DATA_HOLD_TIME_NANOSEC \
37  15 * COM_TIME_SCALER
38 
39 // for address based
40 #define LCD_ADDR_SETUP_TIME_NANOSEC \
41  35 * COM_TIME_SCALER
42 
44 #define LCD_ADDR_HOLD_TIME_NANOSEC \
45  15 * COM_TIME_SCALER
46 
48 #define TIVA_MAX_RISE_TIME 13
49 #define TIVA_MAX_FALSE_TIME \
50  14
51 
52 
55 #define LCD_DATA_WRITE_WAIT_NANOSEC \
56  TIVA_MAX_RISE_TIME + LCD_PULSE_WIDTH_NANOSEC - (LCD_DATA_SETUP_TIME_NANOSEC)
57 
58 #define LCD_DATA_READ_DELAY_NANOSEC \
59  800
60 
61 #define LCD_STARTUP_COMMAND 0b110000
62 #define LCD_BEGIN_COMMAND \
63  0b100000
64 #define LCD_CLEAR_COMMAND 0b1
65 #define LCD_RETURN_HOME_COMMAND 0b10
66 #define LCD_JUMP_LINE_COMMAND 0xc0
67 
68 #define LCD_BUSY_BIT 7
69 #define LCD_ADDR_COUNTER_MASK \
70  0x7f
71 
72 #define LCD_MEMUSED_PER_x8_CHAR 8
73 
74 #endif