Hallo ich verwende das genannte Display an einem I2C Bus. Bin dabei die verschiedenen Darstekllungen auszuprobieren bzw. anzuwenden. Dazu verwende ich z.B. die folgenden Codes in C:
1 | void Test_schreiben1(int8_t x1, int8_t y1, int8_t x2, int8_t y2) |
2 | {
|
3 | int8_t bcc; |
4 | bcc = 0x11 + 0x07 + 0x1b + 'G' + 'D' + x1 + y1 + x2 + y2; |
5 | bcc = bcc % 0x100; |
6 | i2c_start(slave_adresse_1); |
7 | i2c_write(0x11); // DC1 0x11 |
8 | i2c_write(0x07); //07 Strich |
9 | i2c_write(0x1b); // ESC 0x1b |
10 | i2c_write('G'); // G |
11 | i2c_write('D'); // D |
12 | i2c_write(x1); |
13 | i2c_write(y1); |
14 | i2c_write(x2); |
15 | i2c_write(y2); |
16 | i2c_write(bcc); |
17 | i2c_stop(); |
18 | }
|
19 | |
20 | void Graphik_Rechteck(int8_t a1, int8_t b1, int8_t a2, int8_t b2) |
21 | {
|
22 | int8_t bcc; |
23 | bcc = 0x11 + 0x07 + 0x1b + 'G' + 'R' + a1 + b1 + a2 + b2; |
24 | bcc = bcc % 0x100; |
25 | i2c_start(slave_adresse_1); |
26 | i2c_write(0x11); // DC1 0x11 |
27 | i2c_write(0x07); //07 Strich |
28 | i2c_write(0x1b); // ESC 0x1b |
29 | i2c_write('G'); // G |
30 | i2c_write('R'); // R |
31 | i2c_write(a1); |
32 | i2c_write(b1); |
33 | i2c_write(a2); |
34 | i2c_write(b2); |
35 | i2c_write(bcc); |
36 | i2c_stop(); |
37 | }
|
Mal geht der Code und mal nicht. Nach Datenblatt können auch verschiedene Figuren gleichzeitig geschrieben werden. Das klappt aber garnicht. Die überprüfung mit ACK habe ich nicht drin. Wo liegt der Fehler? achim