Вывод переменных на дисплей S65 LPH8836
- Войдите на сайт для отправки комментариев
Чт, 26/10/2017 - 20:38
Помогите пожалуйста кто знает, как можно выводить переменные на дисплей S65 LPH8836. Программа у меня Arduino 1.8.4. Пока не заменил в файлах библиотеки S65Display prog_uint8_t font_PGM на uint8_t font_PGM библиотека не компилировалась, после замены заработала, но вместо текста выводится какой-то мусор. В версии 1.0.6 вывел текст, а вот переменные выводить не получается, не пойму какой командой это можно сделать. Может кто подскажет или пример какой-нибудь скинет.
Ну, если текст выводите, так преобразуйте Ваши переменные в текст и выводите их как текст. Или я чего-то не понял в вопросе?
Евгений, спасибо за ответ. Я и хотел преобразовать, но не понял как. Вчера всё-таки у меня получилось включить в библиотеке команды drawInteger и drawFloat и всё пошло.
Появился ещё один вопрос, а есть ли возможность получить hex в Arduino 1.0.6?
Зайдите в "Настройки" и установите подробный вывод при компиляции
Затем запустите компиляцию и в самом конце выдачи будет адрес Вашего hex-файла.
Зайдёте туда "проводником" и возьмёте.
Спасибо, получилось.
ЕвгенийП, всё-таки интересно мне попытаться вывести переменные при помощи команды вывода текста. Мне нужно вывести на дисплей например результат вычисления КСВ. Беру команду
lcd.drawText(120,48,SWR,1,RGB(255,255,255),RGB(0,0,0))
SWR вставляю без ковычек и выпадают ошибки, а если в ковычках то естественно печатает сам текст SWR. Как вы имели ввиду преобразовать переменную в текст?
А как у Вас описана SWR?
И как описана lcd.drawText?
Понимаю, что второй вопрос Вам непонятен, но хотя бы дайте полный текст сообщения об ошибке о которой Вы говорили или ссылку на имеено ту библиотеку, которую Вы пользуете.
Ну, про drawText понял, а SWT-то как описана?
ЕвгенийП, всё-таки интересно мне попытаться вывести переменные при помощи команды вывода текста. Мне нужно вывести на дисплей например результат вычисления КСВ. Беру команду
lcd.drawText(120,48,SWR,1,RGB(255,255,255),RGB(0,0,0))
SWR вставляю без ковычек и выпадают ошибки, а если в ковычках то естественно печатает сам текст SWR. Как вы имели ввиду преобразовать переменную в текст?
Вам название функции drawText ни о чём таком, связанном с текстом, не говорит, не? Перевожу: нарисоватьТекст, а вы ей скармливаете переменную типа float. Не находите странности, не?
Надо хотя бы так:
Ну почему же не нахожу странности, нахожу, поэтому и интересуюсь можно ли drawText-том выводить переменные. Пока в библиотеке не было команд типа drawInteger и drawFloat чем это делалось или небыло такой возможности.
Попробовал я так как вы предложили, но на String s = SWR; программа ругается:
1. Просто s у Вас уже есть.
2. Вы мне когда-нибудь скажете, как описана SWR? Или будете секретничать?
Да я просто не понял что значит описана. Если вы имеете ввиду как назначены переменные то вот:
Ну, тогда примерно так
Если нужно другое количество знаков после запятой, то см. описание функции dtostrf.
Фигурные скобки там не для красоты. Они нужны, чтобы память под буфер strSWR автоматически освободилась, т.к. после вывода буфер больше не нужен.
Проверить в работе пока не смогу(накрылся индикатор), но программа компилирует. Как проверю- отпишусь. А пока спасибо за помощь.
ЕвгенийП, работает нормально, поигрался количеством знаков после запятой, но есть непонятка: ставлю коардинаты той позиции которая мне нужна, а выводится значительно правее. Попробовал подкорректировать, но стало затирать надпись слева. Получается, что если по x выставить 0, то напечатается где-то на 30. И ещё что спросить хотел, вы не в курсе как победить остаточное изображение после выключения питания. И на сколько это опасно для индикатора, если мер не принимать?
С лидирующими пробелами бороться леко. Вы, видимо не до конца прочитали описание dtostrf.
Второй параметр - общая ширина поля для числа (включая точку, и знак "-". если есть). Число выравнивается по правому краю поля. Если этот параметр отрицательный, то всё также, но число выравнивается по левому краю. Т.е. в моём примере замените 9 на -9 и лидирующих пробелов не будет (лишние пробелы в конце скопятся).
Кстати, не забывайте, что размер буфера (в моём примере - 10) всегда на 1 больше максимальной ширины поля (т.е. второго параметра dtostrf взятого по модулю).
Про послесвечение ничего сказать не могу.
Всё понял, спасибо. Поэксперементирую.
Всё понял, спасибо. Поэксперементирую.
Появился такой вопрос: а есть ли в S65Display возможность выбирать шрифты? У меня получилось всё одним шрифтом сделать, а хочется разными.