Всем здравствуйте. Проблема такая: имеется 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 != 0; i++) {
c = string- 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={0}; // создаем массив для элементов строки
value.toCharArray(charBufVar, i); // преобразуем строку в массив
LCD_PRINT_STRING (charBufVar); // печатаем массив символов.
}
//************************************************************************
Подскажите как избавиться от String в строке LCD_PRINT(String(a1)); чтобы работало как Serial.print() только без serial.
желание подружить его с 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 != 0; i++) {
c = string- 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={0}; // создаем массив для элементов строки
value.toCharArray(charBufVar, i); // преобразуем строку в массив
LCD_PRINT_STRING (charBufVar); // печатаем массив символов.
}
//************************************************************************
Подскажите как избавиться от String в строке LCD_PRINT(String(a1)); чтобы работало как Serial.print() только без serial.