Нужен вывод строки символов - LCD_print("Ariadna"). Аппаратно существует только функция вывода ОДНОГО символа - LCD_Write(byte). Очевидно требуется циклически в нее передавать в виде аргумента символы строки. Не получается это сделать. Код (C++): void setup() { LCD_print("Ariadna"); //Здесь может быть любой текст. } //====== void loop() { } //====== void LCD_print(string) { //Функция исполнения должна этот текст принять и обработать Serial.print(string); //Заодно и "поделиться" текстом с "родственной" функцией. ...... for (i =0; i<stringLength; i++) { //Повторяем процедуру над каждым символом строки. LCD_Write(byte(i)); //Выводим очередной символ строки } } Уважаемые гуру. Как синтаксически правильно все оформить чтоб работало ? А если не затруднит - приведите требуемый код. С уважением.
Выскажу предположение, что перебирать в функции и закидывать на печать надо не "byte(i)" а "charAt()" Про код не скажу, это я не умею.
Транспортной функции ( LCD_Write(byte()) абсолютно побоку как обозвать байты данных. Надо чтобы байты из строки шли по очереди. А я не знаю как синтаксически корректно выбирать эти байты по очереди. ПС. Я схемотехник, но ни разу не программист.
Блин, убил пол-дня. Оказалось просто - Спойлер: Код вывода на LCD LCD_print("Ariadna"); // Использовать всегда только двойные апострофы //============== void LCD_print(char* str) { //Только так char *ptrB = (char*)str; for (int i = 0; i < strlen(str); i++) { char z = *(ptrB + i); LCD_Write(z); } } //------------------------ Всё. Осталось нарисовать последнюю функцию из стандартных - создание символов. Вопрос: Какие еще функции желательно бы добавить в библиотеку ?
можно проще Код (C++): void LCD_print(char* str) { //Только так char *ptrB = (char*)str; while (*ptrB) { LCD_Write((char) *ptrB); ptrB++; } }
Верно. Короче на 36 байт. Где вы раньше были))). ПС. Участник OKF прислал еще проще. void LCD_print(char* str) { while (*str) LCD_Write(*str++); } Тоже работает. Тоже на 36 байт короче моего.
А в такую функцию можно передать такой указатель, чтобы не было выхода из цикла while? Код (C++): void LCD_print(char* str) { while (*str) LCD_Write(*str++); }