Преобразование

sermen
Offline
Зарегистрирован: 26.02.2016

 

Всех приветствую. Нужна помощь в преобразовании переменной. Есть такой тип переменной: volatile unsigned long .Мне ее нужно выводить на TFT LCD дисплей с использованием библиотеки TFT.h. Чтобы это сделать, насколько я понимаю, ее нужно преобразовать в char и далее в  массив.

Как это правильно сделать?

 

vvadim
Offline
Зарегистрирован: 23.05.2012

а зачем её преобразовывать

sermen
Offline
Зарегистрирован: 26.02.2016

Так работает библиотека :(

Вот пример:

In loop(), read the value from the potentiometer and store it in a string. Convert the string content to a char array, storing it in the global array you declared int he beginning of your program.

void loop() {



  String sensorVal = String(analogRead(A0));



  sensorVal.toCharArray(sensorPrintout, 4);

 

 

 Или есть другой способ?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Не понял - а разве библиотека не наследуется от Print? Посмотрел в исходниках - таки да, значит, есть метод write, куда можно пихать хоть чёрта лысого. Есть метод text - который выводит текст в нужной позиции.

Но, если вам надо unsigned long в строку, то

unsigned long ul = 123456;
String s = ul; // вот и сконвертировали в строку

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Из строки массив байт можно получить:

const char* pstr = s.c_str(); // в pstr указатель на массив байт, длиной s.length()

 

sermen
Offline
Зарегистрирован: 26.02.2016

не получается. Ошибка : conversion from 'long unsigned int' to 'String' is ambiguous

String s = ul; // вот и сконвертировали в строку

Мне и конвертировать не нужно. Только вывести на дисплей. Но ни каким способом именно эту переменную вывести на дисплей у меня не получается.

sermen
Offline
Зарегистрирован: 26.02.2016

Вроде так заработало: 

volatile unsigned long tic;
char tic_1[10];
ultoa(tic, tic_1, 10);
 TFTscreen.text(tic_1,x,y );