#1 2019-11-11 15:09:35

Marik04
Учасник
Зареєстрований: 2019-09-23
Повідомлень: 10

GLCD 240x128

Всем здравствуйте. Проблема такая: имеется 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.

Неактивний

#2 2019-11-11 15:23:02

Watchdog
Гість

Re: GLCD 240x128

Изучите устройство работоспособной библиотеки или допишите ей драйвер, например U8glib.

#3 2019-11-11 17:17:28

Watchdog
Гість

Re: GLCD 240x128

Библиотека U8g2 поддерживает ваш дисплей.

#4 2019-11-11 17:43:24

Marik04
Учасник
Зареєстрований: 2019-09-23
Повідомлень: 10

Re: GLCD 240x128

Я начинающий и пока не знаю что такое U8g2 (или знаю но как то  по другому smile) вот даташит на мой дисплей: а pdf сюда нельзя загружать.

https://cdn.datasheetspdf.com/pdf-down/B/G/2/BG240128B2_Bolymin.pdf

Неактивний

#5 2019-11-11 18:59:02

Watchdog
Гість

Re: GLCD 240x128

Открываете, в Ардуино, менеджер библиотек, в строке поиска набираете U8g2 и когда покажется - нажимаете кнопку "установить". Библотека это, графическая, для вашего пдф-а. Примеры там есть.

#6 2019-11-14 13:40:55

Xwells
Учасник
З Киев
Зареєстрований: 2019-11-13
Повідомлень: 6

Re: GLCD 240x128

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)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму