Всем привет. Помогите пожалуйста разобраться как правильно сделать следующее. Код (C++): tft.drawBitmap(0, 0, image1, 12, 21 ILI9341_WHITE, ILI9341_BLACK); Изображение выводится. Но у меня есть другие изображения (image1......9) как мне вывести нужное изображение в зависимости от того что мне пришло с датчика? Я пытаюсь сделать следующее. Код (C++): String val1 = "image"; String val2 = val1 + razr[0]; tft.drawBitmap(0, 0, val2, 12, 21, ILI9341_WHITE, ILI9341_BLACK); Мне выдает ошибку: Код (Text): no matching function for call to 'Adafruit_ILI9341::drawBitmap(int, int, String&, int, int, int, int)' Подскажите пожалуйста как сделать правильно???
Библиотеки Adafruit_GFX и Adafruit_ILI9341. Я бы прочитал если-бы сказали что именно искать. А не так как обычно вот тебе список энного числа учебников перечитай их все и там найдешь ответ.
самое простое - для каждого image свой блок if Код (C++): if (val == 1) { // с датчика пришло 1 tft.drawBitmap(0, 0, image1, 12, 21 ILI9341_WHITE, ILI9341_BLACK); } if (val == 2) { // с датчика пришло 2 - выводим image2 tft.drawBitmap(0, 0, image2, 12, 21 ILI9341_WHITE, ILI9341_BLACK); // и так для всех картинок с 1 по 9 } все остальные пути для вас будут сложными.
Я сделал через switch. Хотел узнать как это можно сделать по другому. Не записывая огромный код из switch или if.
положить ссылки на image в массив и выбирать оттуда по индексу Код (C++): // массив "имаджей" unsigned char* images[] = {NULL, image1, image2, image3}; // выводим нужную картинку по индексу. val - номер нужного имаджа tft.drawBitmap(0, 0, images[val], 12, 21 ILI9341_WHITE, ILI9341_BLACK); Update - поправил тип массива на unsigned char* - это может быть существенно
Я просил дать ссылку на библиотеку, чтобы мог посмотреть типы параметров. А Вы мне что дали? Тебе нужно читать общий учебник типа K&R от начала и до конца. Глянуть что-то конкретное может человек, имеющий базовые знания. У тебя их нет. Давай ссылку на библиотеку по которой описана tft если хочешь конкретного ответа.