как преобразовать uint8_t в строку?

psevdo
Offline
Зарегистрирован: 18.08.2013

Здравствуйте. Пытаюсь взять время из Tiny RTC и вывести на LCD KeyPad Shield.

#include <Wire.h>
#include "RTClib.h"
#include <LCD4Bit_mod.h>

LCD4Bit_mod lcd = LCD4Bit_mod(2);

void setup () {
    lcd.init();
    rtc.begin(DateTime(__DATE__, __TIME__));
}

void loop () {
    DateTime now = rtc.now();
    
    lcd.printIn(now.year());
}
Но не получается. Потому, что функция printIn() принимает в качестве аргумента строку (массив). Подскажите как это можно исправить.
axill
Offline
Зарегистрирован: 05.09.2011
char data_str[11];

sprintf(data_str, "%02d.%02d.%04d", day, month, year2000);

 

psevdo
Offline
Зарегистрирован: 18.08.2013

Спасибо большое. Столько времени потратил на это. Я так понимаю эта функция из С++?

axill
Offline
Зарегистрирован: 05.09.2011

это Си, полностью совместим с С++

psevdo
Offline
Зарегистрирован: 18.08.2013

Получается можно использовать все функции С?

axill
Offline
Зарегистрирован: 05.09.2011

конечно

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Ну не совсем всё можно, в частности, чтобы sprintf( buf, "%f", floatValue ) придется пошаманить. Т.е. по умолчанию урезанная версия printf подключается (без форматов с плавающей точкой), хотя можно и полную подключить при желании.

 

axill
Offline
Зарегистрирован: 05.09.2011

kisoft пишет:

Ну не совсем всё можно, в частности, чтобы sprintf( buf, "%f", floatValue ) придется пошаманить. Т.е. по умолчанию урезанная версия printf подключается (без форматов с плавающей точкой), хотя можно и полную подключить при желании.

описанное вами ограничение не относится к теме Си/С++, оно относится к специфике используемой ардуино библиотеке avr-gcc. Сам особо не использую плавающую точку, но в документе на avr-gcc видел описание о том как подключать либо математику низкой точности, но генерящую компактный код либо дающую высокую точность и "жирный" код

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Подключить можно и на АрдуиноИде, требуется небольшая правка среды, добавление возможности указать любые ключики для линкера.
Я все таки считаю, что sprintf напрямую относится к теме с/с++. И про это нужно говорить, чтобы потом не задавали странных вопросов.