Serial 128X160 SPI TFT LCD Module met Pic

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik probeer een Serial 128X160 SPI TFT LCD Module aan te sturen met een 18f4550 microcontroller. Ik heb dit schermpje op ebay gekocht waar ook wat documentatie te vinden was:
http://www.egochina.net.cn/eBay/Download/JD-T1800_PCB.rar

Daarin staan onder andere een paar voorbeeld programmaatjes maar ik krijg geen beeld. Ik heb de code omgezet naar mikroc, en die is nu als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
#define uchar unsigned char
#define uint unsigned int

sbit cs at latB0_bit;
sbit rs at latB1_bit;
sbit sda at latB2_bit;
sbit scl at latB3_bit;
sbit reset at latB4_bit;

char bitdata;
sbit bit7 at bitdata.b7;
sbit bit6 at bitdata.b6;
sbit bit5 at bitdata.b5;
sbit bit4 at bitdata.b4;
sbit bit3 at bitdata.b3;
sbit bit2 at bitdata.b2;
sbit bit1 at bitdata.b1;
sbit bit0 at bitdata.b0;


void delay(unsigned int time)
{
int cnt;
  for(cnt = 0;cnt<time;cnt++)
  {
  delay_ms(1);
  }
}




void LCD_CtrlWrite_IC(char c)
{
  bitdata=c;
  cs=0;
  rs=0;
  sda=bit7; scl=0; scl=1;
  sda=bit6; scl=0; scl=1;
  sda=bit5; scl=0; scl=1;
  sda=bit4; scl=0; scl=1;
  sda=bit3; scl=0; scl=1;
  sda=bit2; scl=0; scl=1;
  sda=bit1; scl=0; scl=1;
  sda=bit0; scl=0; scl=1;
  cs=1;
}

void  LCD_DataWrite_IC(char d)
{
  bitdata=d;
  cs=0;
  rs=1;
  sda=bit7; scl=0; scl=1;
  sda=bit6; scl=0; scl=1;
  sda=bit5; scl=0; scl=1;
  sda=bit4; scl=0; scl=1;
  sda=bit3; scl=0; scl=1;
  sda=bit2; scl=0; scl=1;
  sda=bit1; scl=0; scl=1;
  sda=bit0; scl=0; scl=1;
  cs=1;
}

void LCD_DataWrite(char LCD_DataH,char LCD_DataL)
{
  LCD_DataWrite_IC(LCD_DataH);
  LCD_DataWrite_IC(LCD_DataL);
}


void  write_command(char c)
{
  bitdata=c;
  cs=0;
  rs=0;
  sda=bit7; scl=0; scl=1;
  sda=bit6; scl=0; scl=1;
  sda=bit5; scl=0; scl=1;
  sda=bit4; scl=0; scl=1;
  sda=bit3; scl=0; scl=1;
  sda=bit2; scl=0; scl=1;
  sda=bit1; scl=0; scl=1;
  sda=bit0; scl=0; scl=1;
  cs=1;
}

void  write_data(char d)
{
  bitdata=d;
  cs=0;
  rs=1;
  sda=bit7; scl=0; scl=1;
  sda=bit6; scl=0; scl=1;
  sda=bit5; scl=0; scl=1;
  sda=bit4; scl=0; scl=1;
  sda=bit3; scl=0; scl=1;
  sda=bit2; scl=0; scl=1;
  sda=bit1; scl=0; scl=1;
  sda=bit0; scl=0; scl=1;
  cs=1;
}


void ResetScreen()
{
    reset=0;
    delay(100);
    reset=1;
    delay(100);
}
//////////////////////////////////////////////////////////////////////////////////////////////

void lcd_initial()
{

   reset=0;
   delay(100);
   reset=1;
   delay(100);

//------------------------------------------------------------------//
//-------------------Software Reset-------------------------------//
//------------------------------------------------------------------//



write_command(0x11);//Sleep exit
delay (120);

//ST7735R Frame Rate
write_command(0xB1);
write_data(0x01); write_data(0x2C); write_data(0x2D);
write_command(0xB2);
write_data(0x01); write_data(0x2C); write_data(0x2D);
write_command(0xB3);
write_data(0x01); write_data(0x2C); write_data(0x2D);
write_data(0x01); write_data(0x2C); write_data(0x2D);

write_command(0xB4); //Column inversion
write_data(0x07);

//ST7735R Power Sequence
write_command(0xC0);
write_data(0xA2); write_data(0x02); write_data(0x84);
write_command(0xC1); write_data(0xC5);
write_command(0xC2);
write_data(0x0A); write_data(0x00);
write_command(0xC3);
write_data(0x8A); write_data(0x2A);
write_command(0xC4);
write_data(0x8A); write_data(0xEE);

write_command(0xC5); //VCOM
write_data(0x0E);

write_command(0x36); //MX, MY, RGB mode
write_data(0xC8);

//ST7735R Gamma Sequence
write_command(0xe0);
write_data(0x0f); write_data(0x1a);
write_data(0x0f); write_data(0x18);
write_data(0x2f); write_data(0x28);
write_data(0x20); write_data(0x22);
write_data(0x1f); write_data(0x1b);
write_data(0x23); write_data(0x37); write_data(0x00);

write_data(0x07);
write_data(0x02); write_data(0x10);
write_command(0xe1);
write_data(0x0f); write_data(0x1b);
write_data(0x0f); write_data(0x17);
write_data(0x33); write_data(0x2c);
write_data(0x29); write_data(0x2e);
write_data(0x30); write_data(0x30);
write_data(0x39); write_data(0x3f);
write_data(0x00); write_data(0x07);
write_data(0x03); write_data(0x10);

write_command(0x2a);
write_data(0x00);write_data(0x00);
write_data(0x00);write_data(0x7f);
write_command(0x2b);
write_data(0x00);write_data(0x00);
write_data(0x00);write_data(0x9f);

write_command(0xF0); //Enable test command
write_data(0x01);
write_command(0xF6); //Disable ram power save mode
write_data(0x00);

write_command(0x3A); //65k mode
write_data(0x05);


    write_command(0x29);//Display on
}




void dsp_single_colour(char DH,char DL)
{
 char i,j;
 //RamAdressSet();
 for (i=0;i<160;i++)
    for (j=0;j<128;j++)
        LCD_DataWrite(DH,DL);
}



void main()
{
  ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
  CMCON  |= 7;                            // Disable comparators

   trisA = 0;
   trisB = 0;
   trisC = 0;
   trisD = 0;
   trisE = 0;

reset = 1;
cs = 1;

 lcd_initial();

      while(1)
  {
 write_command(0x2C);
  //  Disp_gradscal(); //»Ò½×
   // delay(500);

//    dsp_single_colour(0x84,0x10);//»ÒÉ«
//    delay(500);

    dsp_single_colour(0xff,0xff);//°×É«
    delay(500);

    dsp_single_colour(0x00,0x00);//ºÚÉ«
    delay(500);

    dsp_single_colour(0xf8,0x00);//ºìÉ«
    delay(500);

    dsp_single_colour(0x07,0xe0);//ÂÌÉ«
    delay(500);

    dsp_single_colour(0x00,0x1f);//À¶É«
    delay(500);

    }

 }


Na een tijd op het internet te hebben gezocht bleek een initialisatie code voor pic microcontrollers niet te vinden. Wel is er een library voor arduino, van adafruit: http://www.ladyada.net/products/18tftbreakout/

Helaas ben ik dan weer niet echt bekend met het programmeren van arduino's, en is de library van adafruit vrij groot (is ook niet alleen voor dit scherm). Mijn vraag is dus of iemand iets ziet aan de code dat wellicht niet klopt, en of iemand ervaring heeft met dit scherm (en dan met name de initialisatie, als ik dat voor elkaar heb kom er er wel uit denk ik).

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik heb het nog eens met de debugger helemaal doorgelopen, en hij lijkt alles goed te doen. Niemand die een fout ziet?

Acties:
  • 0 Henk 'm!

  • Sphere-
  • Registratie: November 2003
  • Laatst online: 28-08 19:53
Aangezien je de I2C bitbanged zonder delays kan het best zijn dat je I2C clock sneller is dan 100KHz of 400KHz en dat dus je display controller het niet aankan.

Edit: hmm toch SPI dus :)

[ Voor 17% gewijzigd door Sphere- op 08-07-2012 16:50 ]


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik heb overal delays toegevoegd, maar hij geeft nog steeds geen beeld, de code nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
sbit cs at latB0_bit;
sbit rs at latB1_bit;
sbit sdalcd at latB2_bit;
sbit scllcd at latB3_bit;
sbit reset at latB4_bit;

char bitdata;
sbit bit7 at bitdata.b7;
sbit bit6 at bitdata.b6;
sbit bit5 at bitdata.b5;
sbit bit4 at bitdata.b4;
sbit bit3 at bitdata.b3;
sbit bit2 at bitdata.b2;
sbit bit1 at bitdata.b1;
sbit bit0 at bitdata.b0;

void LCD_CtrlWrite_IC(char c)
{
  bitdata=c;
  cs=0;
  rs=0;
  sdalcd=bit7; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_ms(10); scllcd=1;
  cs=1;
}

void  LCD_DataWrite_IC(char d)
{
  bitdata=d;
  cs=0;
  rs=1;
  sdalcd=bit7; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_ms(10); scllcd=1;
  cs=1;
}

void LCD_DataWrite(char LCD_DataH,char LCD_DataL)
{
  LCD_DataWrite_IC(LCD_DataH);
  LCD_DataWrite_IC(LCD_DataL);
}


void  write_command(char c)
{
  bitdata=c;
  cs=0;
  rs=0;
  sdalcd=bit7; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_ms(10); scllcd=1;
  cs=1;
}

void  write_data(char d)
{
  bitdata=d;
  cs=0;
  rs=1;
  sdalcd=bit7; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_ms(10); scllcd=1;
  cs=1;
}

void lcd_initial()
{
   reset=0;
   delay_ms(100);
   reset=1;
   delay_ms(100);

//------------------------------------------------------------------//
//-------------------Software Reset-------------------------------//

write_command(0x11);//Sleep exit
delay_ms(500);

//ST7735R Frame Rate
write_command(0xB1);
delay_ms(10);
write_data(0x01);
delay_ms(10);
write_data(0x2C);
delay_ms(10);
write_data(0x2D);
delay_ms(10);
write_command(0xB2);
delay_ms(10);
write_data(0x01);
delay_ms(10);
write_data(0x2C);
delay_ms(10);
write_data(0x2D);
delay_ms(10);
write_command(0xB3);
delay_ms(10);
write_data(0x01);
delay_ms(10);
write_data(0x2C);
delay_ms(10);
write_data(0x2D);
delay_ms(10);
write_data(0x01);
delay_ms(10);
write_data(0x2C);
delay_ms(10);
write_data(0x2D);
delay_ms(10);

write_command(0xB4); //Column inversion
delay_ms(10);
write_data(0x07);
delay_ms(10);

//ST7735R Power Sequence
write_command(0xC0);
delay_ms(10);
write_data(0xA2);
delay_ms(10);
write_data(0x02);
delay_ms(10);
write_data(0x84);
delay_ms(10);
write_command(0xC1);
delay_ms(10);
write_data(0xC5);
delay_ms(10);
write_command(0xC2);
delay_ms(10);
write_data(0x0A);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_command(0xC3);
delay_ms(10);
write_data(0x8A);
delay_ms(10);
write_data(0x2A);
delay_ms(10);
write_command(0xC4);
delay_ms(10);
write_data(0x8A);
delay_ms(10);
write_data(0xEE);
delay_ms(10);

write_command(0xC5); //VCOM
delay_ms(10);
write_data(0x0E);
delay_ms(10);

write_command(0x36); //MX, MY, RGB mode
delay_ms(10);
write_data(0xC8);
delay_ms(10);

//ST7735R Gamma Sequence
write_command(0xe0);
delay_ms(10);
write_data(0x0f);
delay_ms(10);
write_data(0x1a);
delay_ms(10);
write_data(0x0f);
delay_ms(10);
write_data(0x18);
delay_ms(10);
write_data(0x2f);
delay_ms(10);
write_data(0x28);
delay_ms(10);
write_data(0x20);
delay_ms(10);
write_data(0x22);
delay_ms(10);
write_data(0x1f);
delay_ms(10);
write_data(0x1b);
delay_ms(10);
write_data(0x23);
delay_ms(10);
write_data(0x37);
delay_ms(10);
write_data(0x00);
delay_ms(10);

write_data(0x07);
delay_ms(10);
write_data(0x02);
delay_ms(10);
write_data(0x10);
delay_ms(10);
write_command(0xe1);
delay_ms(10);
write_data(0x0f);
delay_ms(10);
write_data(0x1b);
delay_ms(10);
write_data(0x0f);
delay_ms(10);
write_data(0x17);
delay_ms(10);
write_data(0x33);
delay_ms(10);
write_data(0x2c);
delay_ms(10);
write_data(0x29);
delay_ms(10);
write_data(0x2e);
delay_ms(10);
write_data(0x30);
delay_ms(10);
write_data(0x30);
delay_ms(10);
write_data(0x39);
delay_ms(10);
write_data(0x3f);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_data(0x07);
delay_ms(10);
write_data(0x03);
delay_ms(10);
write_data(0x10);
delay_ms(10);

write_command(0x2a);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_data(0x7f);
delay_ms(10);
write_command(0x2b);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_data(0x00);
delay_ms(10);
write_data(0x9f);
delay_ms(10);

write_command(0xF0); //Enable test command
delay_ms(10);
write_data(0x01);
delay_ms(10);
write_command(0xF6); //Disable ram power save mode
delay_ms(10);
write_data(0x00);
delay_ms(10);

write_command(0x3A); //65k mode
delay_ms(10);
write_data(0x05);

write_command(0x29);//Display on
delay_ms(10);

}




void dsp_single_colour(char DH,char DL)
{
 char i,j;
 //RamAdressSet();
 for (i=0;i<160;i++)
    for (j=0;j<128;j++)
        LCD_DataWrite(DH,DL);
}



void main()
{
  ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
  ANSELB  = 0;                       // Configure pins as digital
  C1ON_bit = 0;                      // Disable comparators
  C2ON_bit = 0;
  
  reset = 1;
  cs = 1;
  
  trisA = 0;
  trisB = 0;
  trisC = 0;
  trisD = 0;
  trisE = 0;

  lcd_initial();

   while(1)
   {
    write_command(0x2C);

    dsp_single_colour(0xff,0xff);//°×É«
    delay_ms(500);

    dsp_single_colour(0x00,0x00);//ºÚÉ«
    delay_ms(500);

    dsp_single_colour(0xf8,0x00);//ºìÉ«
    delay_ms(500);

    dsp_single_colour(0x07,0xe0);//ÂÌÉ«
    delay_ms(500);

    dsp_single_colour(0x00,0x1f);//À¶É«
    delay_ms(500);

   }
 }

Acties:
  • 0 Henk 'm!

  • Sphere-
  • Registratie: November 2003
  • Laatst online: 28-08 19:53
Heb je al geprobeerd of je een register kan uitlezen met een voorspelbare waarde? zoals een register met versienummer ofzo.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Dat heb ik nog niet geprobeerd, maar ik heb daar ook geen voorbeelden van kunnen vinden in de documentatie. Dan zou ik zelf een functie moeten schrijven, alleen weet ik niet goed hoe ik dat aan moet pakken. Ik zal eens in de datasheet zoeken.

Acties:
  • 0 Henk 'm!

  • Sphere-
  • Registratie: November 2003
  • Laatst online: 28-08 19:53
Hmm dat gaat niet werken, de SPI is eenrichtingsverkeer naar de display (er is geen MISO lijn)

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Dat is inderdaad een handig iets om mee te beginnen, nu heb je 350 regels code en geen flauw idee waar te beginnen.

Gelukkig blijkt het wel te kunnen. De datalijn is bi-directioneel. Pagina 82 van de datasheet zegt wat over het lezen van een ID register, alleen geen idee wat eruit moet komen. Je kan er iig mee beginnen, als er alleen maar nullen uitkomen klopt het vast niet.

En als je kijkt hoe simpel de write instructies zijn opgebouwd zal dat qua complexiteit wel meevallen. Eventjes in datasheet eerst kijken of lijntjes nog wat bijzonders moeten doen.

[ Voor 19% gewijzigd door Sissors op 08-07-2012 18:11 ]


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik probeer de gegevens op pagina 82 te begrijpen, maar dat lukt niet helemaal. Klopt het volgende:

Ik maar cs laag, stuur (04h) naar het scherm (als commando, dus met rs laag), maak cs weer hoog, ik maar cs weer laag laag laat de de klok nog steeds doorlopen en lees de eerste 8 bits, ik maak cs weer hoog.

Ik laat de laatste bits dus even zitten, of kan dat niet?

Edit: ik bedoel dus dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void ReadData()
{
  cs=0;
  scllcd=0; delay_ms(5); dataread.b7 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b6 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b5 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b4 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b3 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b2 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b1 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b0 = sdalcd; delay_ms(5); scllcd=1;
  cs=1;
}

......

  write_command(0x04); delay_ms(10);
  ReadData();
  
  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize

  UART1_Write_Text(dataread);


Edit 2:

Ik loop nog tegen een raar iets aan, als ik de uart1 init voor de write_command zet doet de uart het niet meer, dan ontvang ik niets meer, dus zo:

code:
1
2
3
4
5
6
7
  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize

  write_command(0x04); delay_ms(10);
  ReadData(); delay_ms(10);

  UART1_Write_Text(dataread);

[ Voor 84% gewijzigd door huub8 op 08-07-2012 19:14 ]


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Zoals je het nu doet gaat dat wel goed, maar je doet het niet goed :P. Sowieso moet je zorgen dat die pin waarover data gaat van output naar input verandert wordt.

Pagina 32 staat read grafiekje. Daar staat dat je CS laag moet laten, ik neem aan zodra je CS hoog maakt dat hij opnieuw gaat luisters naar serieel commando. Dus als je dan 8 bit inleest, en vervolgens CS hoog maakt, dan gaat het goed. Als je CS niet hoog maakt dan krijg je dat zowel hij als de uC willen schrijven op zelfde data lijn.

Maar tijdens leesactie moet CS dus laag blijven.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Oke, ik heb nu alleen deze code en ontvang 000:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
sbit cs at latB0_bit;
sbit rs at latB1_bit;
sbit sdalcd at latB2_bit;
sbit scllcd at latB3_bit;
sbit reset at latB4_bit;

char bitdata;
sbit bit7 at bitdata.b7;
sbit bit6 at bitdata.b6;
sbit bit5 at bitdata.b5;
sbit bit4 at bitdata.b4;
sbit bit3 at bitdata.b3;
sbit bit2 at bitdata.b2;
sbit bit1 at bitdata.b1;
sbit bit0 at bitdata.b0;

char dataread;

void main()
{
  ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
  ANSELB  = 0;                       // Configure pins as digital
  C1ON_bit = 0;                      // Disable comparators
  C2ON_bit = 0;
  
  reset = 1;
  cs = 1;
  
  trisA = 0;
  trisB = 0;
  trisC = 0;
  trisD = 0;
  trisE = 0;
  
  bitdata=0x04;
  
  cs=0;
  rs=0;
  sdalcd=bit7; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_ms(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_ms(10); scllcd=1;
  
  trisb = 0b00000100;
  
  delay_ms(10);
  
  scllcd=0; delay_ms(5); dataread.b7 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b6 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b5 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b4 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b3 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b2 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b1 = sdalcd; delay_ms(5); scllcd=1;
  scllcd=0; delay_ms(5); dataread.b0 = sdalcd; delay_ms(5); scllcd=1;
  cs=1;
  
  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize

  UART1_Write_Text(dataread);

 }

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
En probeer nu eens de andere bytes ook te ontvangen? Eerste byte is dummy data, dus zegt niet veel. Van derde byte zou in iedergeval 1 bit een '1' moeten zijn volgens de datasheet. Als dat niet het geval is dan is er zeer waarschijnlijk geen goede communicatie (of datasheet is fout).

(Trouwens die delays van 10ms per bit blijven wel erg lang hoor, denk niet dat het uitmaakt, maar 100 bit/s is wel heel langzaam).

[ Voor 14% gewijzigd door Sissors op 08-07-2012 21:45 ]


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik heb de delays veranderd, maar ik krijg nu 000 000 000 000

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
sbit cs at latB0_bit;
sbit rs at latB1_bit;
sbit sdalcd at latB2_bit;
sbit scllcd at latB3_bit;
sbit reset at latB4_bit;

char bitdata;
sbit bit7 at bitdata.b7;
sbit bit6 at bitdata.b6;
sbit bit5 at bitdata.b5;
sbit bit4 at bitdata.b4;
sbit bit3 at bitdata.b3;
sbit bit2 at bitdata.b2;
sbit bit1 at bitdata.b1;
sbit bit0 at bitdata.b0;

char dataread1;
char dataread2;
char dataread3;

void main()
{
  ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
  ANSELB  = 0;                       // Configure pins as digital
  C1ON_bit = 0;                      // Disable comparators
  C2ON_bit = 0;
  
  reset = 1;
  cs = 1;
  
  trisA = 0;
  trisB = 0;
  trisC = 0;
  trisD = 0;
  trisE = 0;
  
  bitdata=0x04;
  
  cs=0;
  rs=0;
  sdalcd=bit7; scllcd=0; delay_us(100); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_us(100); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_us(100); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_us(100); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_us(100); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_us(100); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_us(100); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_us(100); scllcd=1;
  
  trisb = 0b00000100;
  
  delay_us(100);
  
  scllcd=0; delay_us(50); dataread1.b7 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread1.b6 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread1.b5 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread1.b4 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread1.b3 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread1.b2 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread1.b1 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread1.b0 = sdalcd; delay_us(50); scllcd=1;
  
  scllcd=0; delay_us(50); dataread2.b7 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread2.b6 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread2.b5 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread2.b4 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread2.b3 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread2.b2 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread2.b1 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread2.b0 = sdalcd; delay_us(50); scllcd=1;
  
  scllcd=0; delay_us(50); dataread3.b7 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread3.b6 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread3.b5 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread3.b4 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread3.b3 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread3.b2 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread3.b1 = sdalcd; delay_us(50); scllcd=1;
  scllcd=0; delay_us(50); dataread3.b0 = sdalcd; delay_us(50); scllcd=1;
  
  cs=1;
  
  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize


  UART1_Write(dataread1);
  UART1_Write(dataread2);
  UART1_Write(dataread3);

 }

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
rs is toch je data/command pin? Je kan die nog 1 maken voordat het lezen begint (maar na het schrijven van het leescommando). Dat wil de datasheet ook nog, al weet ik niet hoeveel het uitmaakt.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
maakt geen verschil

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Moet je trouwens niet eerst dat scherm uit de slaap modus krijgen voordat je dingen kunt opvragen?

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Zou best kunnen, staat mogelijk wel ergens verborgen in die datasheet. Maar zonder enige ervaring met PICs, MikroC, die LCD module, en niet zelf bij die opstelling te zijn (ik neem aan dat alle draadjes wel goed verbonden enzo zijn), kan ik zo ook weinig meer bedenken wat het probleem is.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
de verbindingen kloppen, pic zit aangesloten op een easypic v7 bord, met een debugger en leds op de uitgangen heb ik wel kunnen testen dat de software de juiste pinnen in de verwachte volgorde hoog/laag worden. Dus ik ben er vrij zeker van dat de hardware klopt en het aan de software ligt.

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik ben verder gekomen, hij werkt bij het eerste commando voor het vullen van het scherm met een kleur, maar daarna houd hij ermee op (het scherm wordt weer blank en blijft dan). De eerste dsp_single_colour(0x33,0x33); werkt dus wel, maar direct daarna (zelfs voordat de delay is afgelopen) wordt het scherm blank.

edit:
Ik heb de code iets aangepast en nu doet hij het opeens twee keer goed, daarna wordt het scherm blank.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
sbit cs at latB0_bit;
sbit rs at latB1_bit;
sbit sdalcd at latB2_bit;
sbit scllcd at latB3_bit;
sbit reset at latB4_bit;

char bitdata;
sbit bit7 at bitdata.b7;
sbit bit6 at bitdata.b6;
sbit bit5 at bitdata.b5;
sbit bit4 at bitdata.b4;
sbit bit3 at bitdata.b3;
sbit bit2 at bitdata.b2;
sbit bit1 at bitdata.b1;
sbit bit0 at bitdata.b0;

void LCD_CtrlWrite_IC(char c)
{
  bitdata=c;
  cs=0;
  delay_us(10);
  rs=0;
  sdalcd=bit7; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_us(10); scllcd=1;
  delay_us(10);
  cs=1;

}

void  LCD_DataWrite_IC(char d)
{
  bitdata=d;
  cs=0;
  rs=1;
  delay_us(10);
  sdalcd=bit7; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_us(10); scllcd=1;
  delay_us(10);
  cs=1;
}

void LCD_DataWrite(char LCD_DataH,char LCD_DataL)
{
  LCD_DataWrite_IC(LCD_DataH);
  LCD_DataWrite_IC(LCD_DataL);
}


void  write_command(char c)
{
  bitdata=c;
  cs=0;
  delay_us(10);
  rs=0;
  sdalcd=bit7; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_us(10); scllcd=1;
  delay_us(10);
  cs=1;

}

void  write_data(char d)
{
  bitdata=d;
  cs=0;
  rs=1;
  sdalcd=bit7; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit6; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit5; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit4; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit3; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit2; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit1; scllcd=0; delay_us(10); scllcd=1;
  sdalcd=bit0; scllcd=0; delay_us(10); scllcd=1;
  cs=1;
}

void lcd_initial()
{
   reset=0;
   delay_ms(100);
   reset=1;
   delay_ms(100);

//------------------------------------------------------------------//
//-------------------Software Reset-------------------------------//

write_command(0x11);//Sleep exit
delay_ms(500);

//ST7735R Frame Rate
write_command(0xB1); delay_us(10);
write_data(0x01);    delay_us(10);
write_data(0x2C);    delay_us(10);
write_data(0x2D);    delay_us(10);
write_command(0xB2); delay_us(10);
write_data(0x01);    delay_us(10);
write_data(0x2C);    delay_us(10);
write_data(0x2D);    delay_us(10);
write_command(0xB3); delay_us(10);
write_data(0x01);    delay_us(10);
write_data(0x2C);    delay_us(10);
write_data(0x2D);    delay_us(10);
write_data(0x01);    delay_us(10);
write_data(0x2C);    delay_us(10);
write_data(0x2D);    delay_us(10);

//Column inversion
write_command(0xB4); delay_us(10);
write_data(0x07);    delay_us(10);

//ST7735R Power Sequence
write_command(0xC0);    delay_us(10);
write_data(0xA2);       delay_us(10);
write_data(0x02);       delay_us(10);
write_data(0x84);       delay_us(10);
write_command(0xC1);    delay_us(10);
write_data(0xC5);       delay_us(10);
write_command(0xC2);    delay_us(10);
write_data(0x0A);       delay_us(10);
write_data(0x00);       delay_us(10);
write_command(0xC3);    delay_us(10);
write_data(0x8A);       delay_us(10);
write_data(0x2A);       delay_us(10);
write_command(0xC4);    delay_us(10);
write_data(0x8A);       delay_us(10);
write_data(0xEE);       delay_us(10);

//VCOM
write_command(0xC5);    delay_us(10);
write_data(0x0E);       delay_us(10);

//MX, MY, RGB mode
write_command(0x36);    delay_us(10);
write_data(0xC8);       delay_us(10);

//ST7735R Gamma Sequence
write_command(0xe0);    delay_us(10);
write_data(0x0f);       delay_us(10);
write_data(0x1a);       delay_us(10);
write_data(0x0f);       delay_us(10);
write_data(0x18);       delay_us(10);
write_data(0x2f);       delay_us(10);
write_data(0x28);       delay_us(10);
write_data(0x20);       delay_us(10);
write_data(0x22);       delay_us(10);
write_data(0x1f);       delay_us(10);
write_data(0x1b);       delay_us(10);
write_data(0x23);       delay_us(10);
write_data(0x37);       delay_us(10);
write_data(0x00);       delay_us(10);

write_data(0x07);       delay_us(10);
write_data(0x02);       delay_us(10);
write_data(0x10);       delay_us(10);
write_command(0xe1);    delay_us(10);
write_data(0x0f);       delay_us(10);
write_data(0x1b);       delay_us(10);
write_data(0x0f);       delay_us(10);
write_data(0x17);       delay_us(10);
write_data(0x33);       delay_us(10);
write_data(0x2c);       delay_us(10);
write_data(0x29);       delay_us(10);
write_data(0x2e);       delay_us(10);
write_data(0x30);       delay_us(10);
write_data(0x30);       delay_us(10);
write_data(0x39);       delay_us(10);
write_data(0x3f);       delay_us(10);
write_data(0x00);       delay_us(10);
write_data(0x07);       delay_us(10);
write_data(0x03);       delay_us(10);
write_data(0x10);       delay_us(10);

write_command(0x2a);    delay_us(10);
write_data(0x00);       delay_us(10);
write_data(0x00);       delay_us(10);
write_data(0x00);       delay_us(10);
write_data(0x7f);       delay_us(10);
write_command(0x2b);    delay_us(10);
write_data(0x00);       delay_us(10);
write_data(0x00);       delay_us(10);
write_data(0x00);       delay_us(10);
write_data(0x9f);       delay_us(10);

//Enable test command
write_command(0xF0);    delay_us(10);
write_data(0x01);       delay_us(10);

//Disable ram power save mode
write_command(0xF6);    delay_us(10);
write_data(0x00);       delay_us(10);

//65k mode
write_command(0x3A);    delay_us(10);
write_data(0x05);       delay_us(10);

//Display on
write_command(0x29);    delay_us(10);

}




void dsp_single_colour(char DH,char DL)
{
 char i,j;
 //RamAdressSet();
 for (i=0;i<160;i++)
 {
    for (j=0;j<128;j++)
    {
        LCD_DataWrite(DH,DL);
    }
 }
}



void main()
{
  ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
  ANSELB  = 0;                       // Configure pins as digital
  C1ON_bit = 0;                      // Disable comparators
  C2ON_bit = 0;

  reset = 1;
  cs = 1;

  trisA = 0;
  trisB = 0;
  trisC = 0;
  trisD = 0;
  trisE = 0;
  
  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize

  UART1_Write_Text("Init Started ");

  lcd_initial();
  UART1_Write_Text("Init Finished ");
      while(1)
   {
    write_command(0x2C);
    dsp_single_colour(0xFF,0x00);
    delay_ms(1000);

    dsp_single_colour(0xF3,0xF3);
    delay_ms(1000);

    dsp_single_colour(0xFF,0x00);
    delay_ms(1000);

    dsp_single_colour(0xF3,0xF3);
    delay_ms(1000);
    
   dsp_single_colour(0xFF,0x00);
    delay_ms(1000);

    dsp_single_colour(0xF3,0xF3);
    delay_ms(1000);

   }
 }

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Wat heb je verandert tov toen hij het niet deed?

Weet je zeker dat zijn voeding goed is? Want dit klinkt als een mogelijk voedingsprobleem. Kan je voeding voldoende stroom leveren en zit er iets van capaciteitjes op de voedingslijn bij het lcd scherm?

[ Voor 68% gewijzigd door Sissors op 09-07-2012 22:04 ]


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Het is inderdaad iets met de voeding, ik voede eerste het scherm met een aparte labvoeding (en dus de pic met de voeding van het easypic bord), als ik vervolgens de ground van de easypic koppel aan het scherm dan werkt het nog steeds maar twee keer, maar is het bleeld een soort van flikkerig (moelijk te beschrijven, er lijken een soort lijnen over heen te liggen).

Als ik de labvoeding helemaal niet gebruik maar zowel de ground als de plus op het easypic bord aansluit zijn de weergave nog steeds flikkerig, maar hij doet het wel. er zit een 10uf en 100nf capacitor overheen.

edit: als ik de rs pin loshaal tijdens het vullen van het scherm wordt het scherm wel mooi gekleurd zonder flikker, maar uiteraard doet hij het dan verder niet meer.

[ Voor 12% gewijzigd door huub8 op 09-07-2012 23:40 ]


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik heb het werkend gekregen, stom genoeg had ik hier niet meer aan gedacht:
If you use 3.3V, please short JP1. If you use 5V, you must open JP1, or LCD will be broken.

Ik gebruik 3.3V, dus dit was noodzakelijk.
Pagina: 1