ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
81960
FDA (21.02.2007 13:19, просмотров: 2225)
Кто работал с индикатором "EM6125 COG Module"? Никак не могу вывести на него информацию. Подключил по следующей схеме: 1 - SDA 2 - SCL 3 - +9В 4 - +5В 5 - GND 6 - GND 7 - +5В 8 - +5В 9 - GND 10 - RES Пример инициализации взял из какого-то примера для MSP430: // Command constant const int CONTBYTE_INITIALIZATION0 = 0x80; // 1000 0000b const int DATABYTE_INITIALIZATION0 = 0x98; // 1001 1000b const int CONTBYTE_INITIALIZATION1 = 0x81; // 1000 0001b const int DATABYTE_INITIALIZATION1 = 0x00; // 0000 0000b const int CONTBYTE_INITIALIZATION2 = 0x82; // 1000 0010b const int DATABYTE_INITIALIZATION2 = 0x00; // 0000 0000b const int CONTBYTE_INITIALIZATION3 = 0x83; // 1000 0011b const int DATABYTE_INITIALIZATION3 = 0xAA; // VLCD Register const int CONTBYTE_INITIALIZATION4 = 0x84; // 1000 0100b const int DATABYTE_INITIALIZATION4 = 0x80; // 1000 0000b - 4x booster const int CONTBYTE_TEST0 = 0xA0; const int CONTBYTE_TEST1 = 0xA8; const int CONTBYTE_TEST2 = 0xB0; const int CONTBYTE_TEST3 = 0xB8; const int WRITE_DDRAM_1BYTE = 0xC0; // 1100 0000b const int WRITE_DDRAM_BYTES = 0x40; // 0100 0000b const int BANK = 10; const int COLUMN = 101; char i, j; char BinaryReverse8 (char b) { char i, r = 0; for (i = 0; i <= 7; i++) if (b & (1 << i)) r |= (1 << (7 - i)); return r; } void InitLCD (void) { StartI2C(); PutI2C(BinaryReverse8(CONTBYTE_INITIALIZATION0)); PutI2C(BinaryReverse8(DATABYTE_INITIALIZATION0)); PutI2C(BinaryReverse8(CONTBYTE_INITIALIZATION1)); PutI2C(BinaryReverse8(DATABYTE_INITIALIZATION1)); PutI2C(BinaryReverse8(CONTBYTE_INITIALIZATION2)); PutI2C(BinaryReverse8(DATABYTE_INITIALIZATION2)); PutI2C(BinaryReverse8(CONTBYTE_INITIALIZATION3)); PutI2C(BinaryReverse8(DATABYTE_INITIALIZATION3)); PutI2C(BinaryReverse8(CONTBYTE_INITIALIZATION4)); PutI2C(BinaryReverse8(DATABYTE_INITIALIZATION4)); PutI2C(BinaryReverse8(CONTBYTE_TEST0)); PutI2C(BinaryReverse8(0)); PutI2C(BinaryReverse8(CONTBYTE_TEST1)); PutI2C(BinaryReverse8(0)); PutI2C(BinaryReverse8(CONTBYTE_TEST2)); PutI2C(BinaryReverse8(0)); PutI2C(BinaryReverse8(CONTBYTE_TEST3)); PutI2C(BinaryReverse8(0)); StopI2C(); } ...... void main (void) { ... InitLCD(); // Пытаюсь заполнить весь экран чёрным StartI2C(); PutI2C(BinaryReverse8(WRITE_DDRAM_BYTES)); for (j = 0; j <= BANK ; j++) for (i = 0; i <= COLUMN; i++) PutI2C(0xFF); StopI2C(); } В итоге на экране появляется просто мусор. Пишу я для PIC18F2520.