1
00:00:01,610 --> 00:00:02,210
Hello.

2
00:00:02,270 --> 00:00:03,320
Welcome back.

3
00:00:03,320 --> 00:00:11,780
So in this lesson we going to ride the SS I driver to interface a Texas Instruments and force you one

4
00:00:11,780 --> 00:00:21,230
two three microcontroller with the SD 7 7 3 5 graphic liquid crystal display which is a colored LCD

5
00:00:21,230 --> 00:00:26,210
screen for displaying graphics so I'm going to create a new project by coming over here.

6
00:00:26,210 --> 00:00:28,580
Project your vision project

7
00:00:33,110 --> 00:00:35,910
and I'm going to come over here.

8
00:00:36,690 --> 00:00:38,220
Create a new format for this

9
00:00:42,030 --> 00:00:49,350
I'll say Tim for C 1 2 3 SD 7 7 3 5.

10
00:00:49,440 --> 00:00:54,580
Driver Not quite a project.

11
00:00:54,900 --> 00:00:59,130
S t 7 7 3 5.

12
00:00:59,130 --> 00:00:59,630
Driver

13
00:01:08,370 --> 00:01:15,120
and the microcontroller is for C 1 2 3 0 8 6 p.m..

14
00:01:15,120 --> 00:01:16,400
Select this over here.

15
00:01:16,470 --> 00:01:19,830
Okay and the census isolate the core

16
00:01:24,830 --> 00:01:34,310
on the device select the startup with this device or select startup

17
00:01:38,490 --> 00:01:43,520
click okay here and I'm going to come over here Target's options

18
00:01:48,080 --> 00:01:52,430
using distilleries I CDI setters reset and run.

19
00:01:52,450 --> 00:01:54,300
Okay and then okay.

20
00:01:54,430 --> 00:01:55,180
Right click here.

21
00:01:55,180 --> 00:02:01,450
Target system for C T 4C one two three.

22
00:02:01,640 --> 00:02:03,510
So this group here renamed to up

23
00:02:11,490 --> 00:02:19,520
and in this project we actually are going to make it a bit more interesting by also initialize in an

24
00:02:19,630 --> 00:02:27,730
ADC driver so that we can connect a potential meter to our microcontroller board and plot the resistance

25
00:02:28,240 --> 00:02:30,880
as we turn the potential meters knob.

26
00:02:31,190 --> 00:02:39,840
We will be able to plot how the default age changes on the LCD just for a test.

27
00:02:39,910 --> 00:02:44,840
So I'm going to create a separate file for the LCD driver.

28
00:02:45,070 --> 00:02:47,300
So come over here and.

29
00:02:47,480 --> 00:02:48,700
I call this

30
00:02:52,180 --> 00:02:53,320
g LCD

31
00:02:56,290 --> 00:02:58,750
SD 7 7 3 5

32
00:03:01,790 --> 00:03:07,600
and then I'm going to copy this name because I'm going to create the header file as well.

33
00:03:07,620 --> 00:03:17,070
Right click right click each new item this ahead of file and it's going to be called this and I'm going

34
00:03:17,110 --> 00:03:21,430
to create the main file right click that new item.

35
00:03:21,640 --> 00:03:23,110
This is going to be made at C

36
00:03:31,010 --> 00:03:31,490
OK.

37
00:03:33,870 --> 00:03:37,450
So we start with the driver file.

38
00:03:37,620 --> 00:03:45,250
This one here too we basically going to create a number of functions for initializing the LCD.

39
00:03:45,420 --> 00:03:53,250
And what we're going to use here is going to be information from the the SD 7 7 3 5 data sheet the data

40
00:03:53,280 --> 00:03:59,370
she talks about the various steps that needs to be taken in order to configure the LCD screen as well

41
00:03:59,370 --> 00:04:02,220
as you know right data to it.

42
00:04:02,250 --> 00:04:02,700
Right.

43
00:04:02,700 --> 00:04:07,620
So let's start by including some symbolic names to are what drive here.

44
00:04:07,730 --> 00:04:10,830
First of all list included the head of file of the microcontroller.

45
00:04:10,830 --> 00:04:11,330
This is it.

46
00:04:12,060 --> 00:04:17,760
Once that is done I'm going to if not define defined in this interface file

47
00:04:22,800 --> 00:04:23,800
then.

48
00:04:24,240 --> 00:04:25,500
And if over here

49
00:04:30,490 --> 00:04:33,100
right now I'm going to include some symbolic names.

50
00:04:34,240 --> 00:04:39,240
So these are names representing the setting of certain bits.

51
00:04:39,370 --> 00:04:43,240
So it's in the control register 0 as well as the control register 1.

52
00:04:43,240 --> 00:04:48,820
We're going to give all of these bit symbolic names to that rather than type the hexadecimal numbers

53
00:04:49,090 --> 00:04:50,710
we just call the symbolic name.

54
00:04:50,800 --> 00:04:54,700
And this is going to make the code more readable.

55
00:04:54,940 --> 00:04:56,040
Right.

56
00:04:56,080 --> 00:05:00,550
So this over here sets SS asynchronous serial port.

57
00:05:00,610 --> 00:05:06,530
This represents this hexadecimal code and it's the same for all of them.

58
00:05:06,550 --> 00:05:13,480
So that will reduce you know calculating what X hexadecimal code we need to pass to the register we

59
00:05:13,480 --> 00:05:15,850
just call these symbolic names.

60
00:05:15,970 --> 00:05:19,840
Once this is done there's one more I would have to include the busy bit

61
00:05:24,020 --> 00:05:35,480
and Hubble will include one for the day transmits five or not for this is simply 0 0 2 we can give it

62
00:05:35,480 --> 00:05:37,470
a symbolic name as well.

63
00:05:37,820 --> 00:05:43,050
So we call an SSI status register TANF a simple cluster.

64
00:05:43,130 --> 00:05:50,320
Once that is done we're going to add we're going to add more defined statement

65
00:05:53,030 --> 00:05:56,700
and this this year is for the D.C. line.

66
00:05:56,820 --> 00:06:00,060
As you can see on the MCU there is a line known as the DC line.

67
00:06:00,810 --> 00:06:07,710
And this over here if we want to set a DC line high we pass this and then come mode would pass zero

68
00:06:07,770 --> 00:06:10,320
data mode would pass through x 4 0

69
00:06:13,370 --> 00:06:14,690
this year.

70
00:06:14,770 --> 00:06:17,670
As for the DC line the address of the DC line.

71
00:06:17,670 --> 00:06:23,450
And if we want to set a DC line to command what we pass through to data would pass through x force 0.

72
00:06:23,570 --> 00:06:24,410
That is a.

73
00:06:24,530 --> 00:06:32,150
And just as a reminder I'm going to bring the pin out here to remind us to remind us of what we're dealing

74
00:06:32,150 --> 00:06:33,680
with.

75
00:06:36,050 --> 00:06:39,530
So the DC is connected to p. 86.

76
00:06:39,680 --> 00:06:46,180
That is why to set the data mode we set in this 2 4 0 0 x 4 0.

77
00:06:46,190 --> 00:06:54,530
Because if I explained this to it's binary form you realize that bit bit 7 which is bits Number Six

78
00:06:54,540 --> 00:06:58,780
because we count from 0 but 7 is set to 1.

79
00:06:58,820 --> 00:07:06,650
If you expand this to accept it that if you expand this to its binary form you realize the bits number

80
00:07:06,650 --> 00:07:12,830
six which is the seventh bit is set to 1 because we counter a 1 2 3 4 5 6.

81
00:07:13,070 --> 00:07:15,570
Right.

82
00:07:15,680 --> 00:07:23,840
I'm going to suffer a bit and the reset line is connected to pierce 7 okay.

83
00:07:24,110 --> 00:07:26,920
So that's what we're dealing with.

84
00:07:27,380 --> 00:07:31,520
Once that is done we can define our LCD board over here.

85
00:07:31,520 --> 00:07:35,290
Create a symbolic name for that as well to improve readability.

86
00:07:35,390 --> 00:07:37,910
I'm going to connect the LCD to put a

87
00:07:41,460 --> 00:07:48,450
and then again when I put some other defined statement for the arrest pin which is P seven addresses

88
00:07:49,130 --> 00:07:51,660
reset CSP and which is P A three.

89
00:07:51,660 --> 00:07:57,140
So I'm just using bits shift here and then DC pin which is P6 right.

90
00:07:57,180 --> 00:07:59,720
So of course symbolic names for these as well.

91
00:07:59,880 --> 00:08:06,990
Once that is done I'm going to create a symbolic name for it for setting RSP in to 0 setting RSP into

92
00:08:06,990 --> 00:08:12,780
one set and see esp into 0 setting it to 1 set in DCP into 0 and setting it to 1.

93
00:08:13,120 --> 00:08:19,580
So when you have a symbolic name for that as well and I'm just gonna put these names here.

94
00:08:19,690 --> 00:08:31,130
So if I simply call LCD R S 0 screen to set p a 7 2 0 2 if I call LCD R.S. one is going to set p a 7

95
00:08:31,130 --> 00:08:34,720
to 1 and it's because we've written it this way.

96
00:08:34,740 --> 00:08:39,670
So when we call the symbolic name this code is executed and it's the same for the rest.

97
00:08:40,810 --> 00:08:47,470
Once that is done we're going to put some constant here with regards to the parameters of our LCD the

98
00:08:47,470 --> 00:08:54,050
width of the LCD is one hundred and twenty eight pixels and the height is 160 pixels.

99
00:08:54,160 --> 00:08:57,610
So I'm just going to create defined statement for these as well.

100
00:08:57,850 --> 00:09:04,830
When I put them here like this once that is done we are going to define certain colors.

101
00:09:04,900 --> 00:09:10,550
We can define colors as what colors are simply hexadecimal numbers like any other two.

102
00:09:10,660 --> 00:09:13,040
I've got some colors that are already defined.

103
00:09:13,060 --> 00:09:16,600
I'm just going to bring them as well.

104
00:09:16,630 --> 00:09:19,460
Here are the colors right.

105
00:09:19,570 --> 00:09:23,470
And once that is done some specific registers in the LCD.

106
00:09:23,470 --> 00:09:31,720
When you take a look at the data sheet there is the R is set to register C it sets register and other

107
00:09:31,840 --> 00:09:38,440
other locations in the LCD memory map and we're going to create defined statements to navigate this

108
00:09:38,440 --> 00:09:38,880
locations.

109
00:09:38,890 --> 00:09:46,420
These allocations in indeed OCD so there are other constants with regards to the LCD there is the art

110
00:09:46,430 --> 00:09:54,220
is set which according to the data sheet is 0 x to be there is the C is at whose address is zero x to

111
00:09:54,240 --> 00:10:00,580
a will be integrate define statement for D as well so that we can just call the symbolic names rather

112
00:10:00,580 --> 00:10:05,680
than run it and end up with a code filled with hexadecimal numbers.

113
00:10:05,680 --> 00:10:06,480
We don't want that.

114
00:10:06,490 --> 00:10:08,590
That is why we are doing this.

115
00:10:09,040 --> 00:10:15,700
So since we said we are going to be plotting graphs I've created a symbolic name for certain parameters

116
00:10:15,700 --> 00:10:20,020
of the graph such as the background color of the graph.

117
00:10:20,550 --> 00:10:26,950
The Axis color the background color and other things so I just I've just given them symbolic color names

118
00:10:26,950 --> 00:10:28,820
because we've created a color names here.

119
00:10:29,200 --> 00:10:34,490
So I just bring these deaths including the command for setting the display on and other things.

120
00:10:34,600 --> 00:10:38,740
I just bring this here and we're going to use all of these in the c file.

121
00:10:38,860 --> 00:10:45,280
That's one put in here so that as we type in the CFR we just don't see red marks because these symbolic

122
00:10:45,280 --> 00:10:46,430
needs to know exist.

123
00:10:46,450 --> 00:10:50,420
Once that is done in order to type text we need to have a font.

124
00:10:50,440 --> 00:10:51,890
We need to include a font.

125
00:10:52,090 --> 00:10:59,140
So I've generated this font and fonts are generally generated there are different types of font so it

126
00:10:59,140 --> 00:11:05,070
is just a long array of numbers of new 8 numbers.

127
00:11:05,980 --> 00:11:16,080
And that is how you get the font on the LCD screen so this font and these numbers represent 0 to 9 ABC.

128
00:11:16,210 --> 00:11:19,230
All the characters or the symbols.

129
00:11:19,230 --> 00:11:21,360
Question mark comma harsh.

130
00:11:21,910 --> 00:11:26,130
All of it is represented in this in this array.

131
00:11:26,800 --> 00:11:30,340
So this the format and simply calling it font over here.

132
00:11:30,370 --> 00:11:36,470
The reason we have this error is because we've not included sd d and so I'll come over here and include

133
00:11:36,470 --> 00:11:37,050
it

134
00:11:48,470 --> 00:11:50,010
and it's disappeared.

135
00:11:50,010 --> 00:11:50,390
Right.

136
00:11:50,400 --> 00:11:55,860
So now that we've sorted this out let's go to our implementation file which is they don't see file and

137
00:11:56,190 --> 00:11:58,290
start writing out the functions

138
00:12:00,850 --> 00:12:07,300
so we're going to need a delay function cause during the initialization process where we set certain

139
00:12:07,300 --> 00:12:11,240
bits we've got to wait for some time before we move on.

140
00:12:11,530 --> 00:12:16,120
Cos of that I'm going to bring this time of function here like this.

141
00:12:16,120 --> 00:12:20,890
And the reason I'm bringing this time a function without write in is because we've already learned how

142
00:12:20,890 --> 00:12:26,530
to write such time of functions in the time section so I know you would understand what is going on

143
00:12:26,530 --> 00:12:27,130
here.

144
00:12:27,160 --> 00:12:36,060
The reason we have these marks is because we don't have access to these microcontroller specific structures.

145
00:12:36,280 --> 00:12:42,310
So all I need to do is include the DOT h file because we've already included temp for C dot h here.

146
00:12:42,310 --> 00:12:44,250
So I'm gonna include a dot h file here.

147
00:12:44,290 --> 00:12:48,100
Our problem should be solved right.

148
00:12:48,220 --> 00:12:59,520
Once this is done I'm going to create a function called SS I 0 in it so I'll save for it SS I 0 on the

149
00:12:59,540 --> 00:13:05,650
score in it and this takes no argument open closed.

150
00:13:09,100 --> 00:13:10,540
So I'm going to start off

151
00:13:16,500 --> 00:13:25,680
I'm going to start off by actually bringing in some more I'll create some local create some local global

152
00:13:25,680 --> 00:13:30,270
share some global variables global only 2 the dot c 5 million.

153
00:13:30,280 --> 00:13:36,450
We cannot fetch them outside this far but any function in this file can fetch them and I'll just bring

154
00:13:36,450 --> 00:13:38,980
them here.

155
00:13:39,000 --> 00:13:43,430
This includes setting the width and height of the LCD which we've already defined in a dot.

156
00:13:43,460 --> 00:13:50,820
Each file we defined this we defined this as well we set in start X to 0 starts way to 0 and we have

157
00:13:51,090 --> 00:13:54,510
columns that's real estate and text color to 0.

158
00:13:54,510 --> 00:13:58,920
We've just set these goals we're going to need them right.

159
00:13:59,320 --> 00:14:05,310
So once that is done I'm going to initialize the column start and the row starts as well as create a

160
00:14:05,310 --> 00:14:09,250
new variable called delay like this.

161
00:14:09,840 --> 00:14:16,510
And once that is done I'm going to enable clock access to the SS II module as well as the keep your

162
00:14:16,560 --> 00:14:23,280
module that we've connected the SS to and I'm going to come here and do this like this and this line

163
00:14:23,280 --> 00:14:28,920
here is just to make sure that the initialization is complete before we move on to the to the next line

164
00:14:28,920 --> 00:14:29,620
of code.

165
00:14:29,670 --> 00:14:35,520
So there's just a blocking statement to make sure that we've completed executing these two lines before

166
00:14:35,520 --> 00:14:36,270
we can move on.

167
00:14:36,570 --> 00:14:38,030
So this just a poor.

168
00:14:38,430 --> 00:14:40,130
This can be admitted.

169
00:14:40,410 --> 00:14:42,340
Yeah there's nothing wrong with it.

170
00:14:42,480 --> 00:14:50,580
Once that is done I'm going to go to GPL you a and access the direction register and set the pace that

171
00:14:50,580 --> 00:14:51,060
we need

172
00:14:54,290 --> 00:14:59,460
setting them US UP BRING OUR HEAD a file here.

173
00:14:59,480 --> 00:15:01,460
This should assist the

174
00:15:05,000 --> 00:15:11,480
some of the things that we're using put this yes.

175
00:15:11,520 --> 00:15:25,430
Well as a reminder and then I'll set the alternate function the alternate function is set and then digitally

176
00:15:25,430 --> 00:15:26,280
enabled them

177
00:15:31,930 --> 00:15:33,260
once that's done.

178
00:15:34,130 --> 00:15:36,020
I coached at Port controller register

179
00:15:38,770 --> 00:15:40,130
and then inserted.

180
00:15:40,360 --> 00:15:44,470
Then once that is done or disable analog so let

181
00:15:47,920 --> 00:15:55,190
once that is done I'm going to set the C S line to 0 and then the address line to 1.

182
00:15:55,210 --> 00:16:00,310
Remember we already created symbolic names for C S 0 and R S 1

183
00:16:05,070 --> 00:16:11,600
and according to the data sheet when we set CSU to arrest one we've got to wait for a bit and then we

184
00:16:11,600 --> 00:16:17,030
set our best to 0 and then wait for a bit and then sets out as to 1.

185
00:16:17,440 --> 00:16:21,620
So we've got to follow that initialization sequence.

186
00:16:21,740 --> 00:16:25,700
So I'm going to wait for 500 EMIs once that is done.

187
00:16:25,700 --> 00:16:28,670
I'm going to set R S to 0.

188
00:16:28,700 --> 00:16:33,180
We already have a symbolic name for set in r s to 0 as well.

189
00:16:33,490 --> 00:16:37,100
So once that is done I'm going to wait for another 500 m s

190
00:16:46,090 --> 00:16:47,680
and then set R Us to 1

191
00:16:55,350 --> 00:16:55,980
and then

192
00:16:59,100 --> 00:17:05,030
wait for another 500 m s once we've done this.

193
00:17:05,060 --> 00:17:07,760
We go ahead to initialize the SSI module

194
00:17:24,450 --> 00:17:25,580
right.

195
00:17:25,710 --> 00:17:34,830
So we set up these and then we disable the SSA module by access the contra register one and using the

196
00:17:35,010 --> 00:17:40,050
enable pin that we have here because we've already created this symbolic name for this and then will

197
00:17:40,050 --> 00:17:41,130
select master mode.

198
00:17:41,160 --> 00:17:44,100
We've already created a symbolic name for Master mode as well.

199
00:17:44,190 --> 00:18:01,960
You can find all of these in these that each these defined a statement we have here.

200
00:18:02,830 --> 00:18:08,630
Once that's done we configure for system clock and the bot rate source and all of this is making use

201
00:18:08,630 --> 00:18:10,950
of the defined statement we wrote earlier.

202
00:18:16,850 --> 00:18:23,530
And to learn more about any of these registers you can simply go to the data sheet find the SSI readable

203
00:18:23,610 --> 00:18:25,160
these registers.

204
00:18:25,160 --> 00:18:30,410
The reason in the beginning I spent so much time taking you to the data sheet to help you navigate and

205
00:18:30,410 --> 00:18:39,320
find various registers and how to read the the the bits and decode the meaning of each bit set in so

206
00:18:39,320 --> 00:18:46,220
that I can move faster in the later sections such as this one so that I can simply use a register and

207
00:18:46,220 --> 00:18:51,380
tell you this is the register required and knowing that you can go to the data sheet on your own as

208
00:18:51,380 --> 00:18:57,500
an independent and better developer to be able to locate these registers and read more about them and

209
00:18:57,590 --> 00:19:05,480
understand or should you be confused as to why you know for instance as to why we set and see are one

210
00:19:05,830 --> 00:19:11,480
we set it to less is we set in bits one to one if you don't understand that you simply need to go to

211
00:19:11,540 --> 00:19:19,610
SS a section in the data sheet find a C R1 control register 1 and then check bit 1 and see if between

212
00:19:19,610 --> 00:19:25,150
is 0 What happens if between is 1 what happens by finding that out you simply understand everything

213
00:19:25,160 --> 00:19:27,700
should you be confused right

214
00:19:30,530 --> 00:19:33,330
if you have any questions of course you can send me a message

215
00:19:55,150 --> 00:19:55,480
right.

216
00:19:55,510 --> 00:20:05,170
So this is going to be our SSA in its function but we have to include further code here for some initialization

217
00:20:05,170 --> 00:20:06,620
code months across the data.

218
00:20:06,620 --> 00:20:12,110
She talks about setting common sequence that you need to execute during initialization and write it

219
00:20:12,100 --> 00:20:19,630
an item to this function we go into create a separate function to sort out that that task

220
00:20:24,320 --> 00:20:24,620
right.

221
00:20:24,620 --> 00:20:28,570
So let's just without an order not to forget it.

222
00:20:28,580 --> 00:20:30,490
Let's write it here.

223
00:20:30,500 --> 00:20:32,090
So I'm going to call this new function.

224
00:20:32,100 --> 00:20:38,010
Void standard in its command or you can give it whichever name you want.

225
00:20:44,250 --> 00:20:53,190
And according to the data sheet to initialize we start off by set in the C S line our baseline to 0.

226
00:20:53,190 --> 00:21:01,890
We wait for around 10 milliseconds said the errors line to 1 and then would write command we write a

227
00:21:01,890 --> 00:21:05,470
specific command and then we go on from there.

228
00:21:05,580 --> 00:21:09,690
So we start off by setting C s2 0 arrest 0

229
00:21:13,570 --> 00:21:26,670
we wait for 10 m s and then we set our rest to 1 we wait for another 10 m s and then we write the commands

230
00:21:26,670 --> 00:21:29,690
0 x 1 1 2.

231
00:21:29,730 --> 00:21:31,170
I'm going to bring this here.

232
00:21:31,200 --> 00:21:36,130
So this should tell you that we need to write a function that would help us write commands.

233
00:21:36,210 --> 00:21:38,040
We currently don't have this function.

234
00:21:38,100 --> 00:21:40,410
That is why we have this red mark.

235
00:21:40,460 --> 00:21:46,050
We should write this function after this wonder we are currently dealing with we radical monster x 1

236
00:21:46,050 --> 00:21:46,700
1.

237
00:21:46,710 --> 00:21:52,150
We wait a bit longer this time let's say we wait for 120 milliseconds.

238
00:21:52,260 --> 00:21:57,900
Once that is done we write the command to set the color to sets the bids.

239
00:21:57,900 --> 00:22:00,110
And finally we set a display.

240
00:22:01,020 --> 00:22:06,810
And just like the datasheet of the of the microcontroller if there's a specific hexadecimal command

241
00:22:06,840 --> 00:22:08,130
you do not understand.

242
00:22:08,130 --> 00:22:14,320
You can find this in the data sheet of the LCD the SD 7 7 3 5 LCD.

243
00:22:14,400 --> 00:22:18,450
These commands and the Armenian is written in there right.

244
00:22:18,510 --> 00:22:21,120
And one other thickness.

245
00:22:21,480 --> 00:22:27,390
This course is going to be is going to be mostly about dealing with the LCD at this point.

246
00:22:27,390 --> 00:22:27,850
Really.

247
00:22:27,870 --> 00:22:33,400
We are done with initialize and the SBA or the SSA module.

248
00:22:33,660 --> 00:22:34,920
That's the thing with SSI.

249
00:22:34,920 --> 00:22:37,620
It's initialization is so simple and straightforward.

250
00:22:37,740 --> 00:22:46,680
Majority of the time you spend customizing functions for communicating with a particular SSI slave.

251
00:22:46,680 --> 00:22:51,990
In this case the rest of the course is going to be spent or the rest of this particular lesson is going

252
00:22:51,990 --> 00:23:00,990
to be spent on writing functions to sort of navigate it configure and write data to the LCD screen taken

253
00:23:00,990 --> 00:23:08,520
into account or or using the information provided in the LCD data sheet.

254
00:23:08,670 --> 00:23:10,590
So that's what we are doing though right.

255
00:23:10,620 --> 00:23:16,410
So because of that some of the functions I'm just going to gloss over because this is not a lesson on

256
00:23:16,860 --> 00:23:19,860
this particular graphically liquid crystal display.

257
00:23:19,860 --> 00:23:27,360
It's a lesson on SBI just that it will be interesting to show you how it works with a real world slave.

258
00:23:27,390 --> 00:23:29,710
That is where we have this LCD here.

259
00:23:30,210 --> 00:23:35,630
Okay so once this is done we still have this function to sort out.

260
00:23:35,640 --> 00:23:39,300
We have two functions here one for writing code on one for writing data.

261
00:23:39,330 --> 00:23:41,170
Command is different from data.

262
00:23:41,190 --> 00:23:45,090
Data is where you want to be sort of printed on the screen.

263
00:23:45,090 --> 00:23:50,640
Command is sent to the screen to configure it such as configured the color mode configure the bid size

264
00:23:50,850 --> 00:23:54,660
turn on the LCD sets the cursor etc..

265
00:23:54,840 --> 00:23:59,460
So that is why we would have two functions one for command another one for data.

266
00:23:59,700 --> 00:24:03,110
So less rights the function for writing commands.
