Ви не увійшли.
Сторінки 1
Всем здравствуйте. Проблема такая: имеется GLCD 240х128 BG240128B2YP2 на процессоре SAP1024B он же t6963c и есть большое желание подружить его с apduino nano. Библиотеки которые находил в интернете или вообще не работают или работают только с мегой, решено было написать свою библиотеку, (пока только как функции, потом буду разбираться как сделать полноценную свою библиотеку) все получается кроме отображения переменных, точнее и переменные отображаются только через "быдло код", сначала перевожу переменную в строку потом копирую ее в функцию там создаю массив чар который отображается, получается три копии данных.
Вот что имею:
float a=13.2787;
int a1=-45;
LCD_GOTO_XY(1, 1);
LCD_PRINT_STRING("Float=");
LCD_PRINT(String(a,2)); // если переменная ФЛОАТ второй аргумент КОЛИЧЕСТВО ЗНАКОВ после запятой
LCD_PRINT_STRING(" ...OK ");
LCD_GOTO_XY(1, 3);
LCD_PRINT_STRING("Int=");
LCD_PRINT(String(a1)); // если переменная целочисленная второй аргумент СИСТЕМА ИСЧИСЛЕНИЯ.
LCD_PRINT_STRING(" ...OK ");
и сами функции:
//************************************************************************
void LCD_PRINT_STRING ( const char *string) { // Функция печати массива символов
int i;
int c;
for (i = 0; string[i] != 0; i++) {
c = string[i]- 0x20; // convert ASCII to LCD char address
if (c < 0) c = 0;
LCD_DATA_PUT(c);
LCD_COMMAND_PUT(B11000000); // write character, increment memory ptr.
}
}
//************************************************************************
void LCD_PRINT ( String value){ // ПЕЧАТАЕМ ПЕРЕМЕННУЮ
byte i=value.length()+1; // узнаем длину строки (+1 для конца)
char charBufVar[i]={0}; // создаем массив для элементов строки
value.toCharArray(charBufVar, i); // преобразуем строку в массив
LCD_PRINT_STRING (charBufVar); // печатаем массив символов.
}
//************************************************************************
Подскажите как избавиться от String в строке LCD_PRINT(String(a1)); чтобы работало как Serial.print() только без serial.
Неактивний
Изучите устройство работоспособной библиотеки или допишите ей драйвер, например U8glib.
Библиотека U8g2 поддерживает ваш дисплей.
Открываете, в Ардуино, менеджер библиотек, в строке поиска набираете U8g2 и когда покажется - нажимаете кнопку "установить". Библотека это, графическая, для вашего пдф-а. Примеры там есть.
1. Узнаете марку контроллера экрана
2. Подключаете библиотеку #include <U8g2lib.h> (как инсталировать)
3. Находите его (контроллер GLCD) в списке контроллеров в начале скетча любого примера из библиотеки...
4. Копируете строку в свой скетч. Все, библиотека подключена, GLCD опознан )
5. В примере (или описании библиотеки) смотрите какие команды...
На примере моего GLCD:
//U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* CS=*/ 10, /* reset=*/ 8);
//U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* clock=*/ 14, /* data=*/ 13, /* CS=*/ 15, /* reset=*/ 16); // Feather HUZZAH ESP8266, E=clock=14, RW=data=13, RS=CS
//U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/ 10, /* reset=*/ 8);
//U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/ 15, /* reset=*/ 16); // Feather HUZZAH ESP8266, E=clock=14, RW=data=13, RS=CS
U8G2= библиотека; ST7920=контролле GLCD; 128X64=разрешение(бывает разное - внимательно!); SW или HW = SoftWare или HardWare подключение; SPI=шина/интерфейс подключения; ну а в скобках пины подключения стандартные, но можно свои в соответствии с распиновкой контроллера...
а.. и да... я бы лично советовал все таки U8glib, она хоть и старее и больше не обновляется тем не менее при компиляции занимает меньше места в памяти контроллера...
Остання редакція Xwells (2019-11-14 13:47:07)
Неактивний
1. Узнаете марку контроллера экрана
2. Подключаете библиотеку #include <U8g2lib.h> (как инсталировать)
3. Находите его (контроллер GLCD) в списке контроллеров в начале скетча любого примера из библиотеки...
4. Копируете строку в свой скетч. Все, библиотека подключена, GLCD опознан )
5. В примере (или описании библиотеки) смотрите какие команды...
На примере моего GLCD://U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* CS=*/ 10, /* reset=*/ 8);
//U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* clock=*/ 14, /* data=*/ 13, /* CS=*/ 15, /* reset=*/ 16); // Feather HUZZAH ESP8266, E=clock=14, RW=data=13, RS=CS
//U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/ 10, /* reset=*/ 8);
//U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/ 15, /* reset=*/ 16); // Feather HUZZAH ESP8266, E=clock=14, RW=data=13, RS=CSU8G2= библиотека; ST7920=контролле GLCD; 128X64=разрешение(бывает разное - внимательно!); SW или HW = SoftWare или HardWare подключение; SPI=шина/интерфейс подключения; ну а в скобках пины подключения стандартные, но можно свои в соответствии с распиновкой контроллера...
а.. и да... я бы лично советовал все таки U8glib, она хоть и старее и больше не обновляется тем не менее при компиляции занимает меньше места в памяти контроллера...
У вас есть примеры скетчей с использованием библиотеки u2glib
Неактивний
Сторінки 1