printf в Print
- Войдите на сайт для отправки комментариев
Втр, 28/01/2020 - 06:32
Новичкам, задолбавшимся печатать бесконечные Serial.print() да Serial.println() c каждой переменной, которую они хочут вывести, могу посоветовать открыть файл Print.h и в описание класса в конец вставить вот это
size_t printf(const char *format, ...) { const uint8_t MAX_STRING_SIZE = 64; char buf[MAX_STRING_SIZE]; va_list args; va_start(args, format); vsnprintf(buf, MAX_STRING_SIZE, format, args); va_end(args); return print(buf); }
и тогда все свои переменные можно писать в одну строчку со всеми плюшками стандартной функции printf()
Описание форматов можно почитать у DIHALT: http://we.easyelectronics.ru/Soft/formatnyy-vyvod-na-si-dlya-mikrokontrollerov.html
Теперь лехко можно писать
const uint8_t ARRAY_SIZE = 100; int Array[ARRAY_SIZE]; for (uint8_t i = 0; i < ARRAY_SIZE; i++) Array[i] = 10*i; const char *Prompt = "Line"; for (uint8_t i = 0; i < ARRAY_SIZE; i++) { Serial.printf("%s%-3d: Array[%d] = \t%d\n", Prompt, i + 1, i, Array[i]); }
Если возникнут затруднения со вставкой, пишите, я покажу куда.
Дед, ну в первых в h, по взрослому, надо тока описание воткнуть, а код в cpp
и во вторых, этож все до первого обновления/переустановки.
а так да КЛАСС!
Для классов в .h файле допустима и реализация. Например, шаблонные классы по другому и не сделаешь.
Ну, а при переустановке 5 строк сохранить, наерна, не проблема. А можно просто принцип понять и сделать так же потом, если штучка реально полезная. Мне вот для отладки пригождается, а в конечном коде, абычна, и сериала-то нет. :-)
Вставил в конец файла
перед последней скобкой "};", после строки "virtual void flush() { ..."
Результат
Что сделал не так?
у меня вставлено так
virtual
void
flush() {
/* Empty impl..."
нуууу, у мня VisualMicro, я написал #include <Print.h>, нажал правой кнопочкой на ней да выбрал "Открыть документ", оно мне сразу правильное и открывается. :) Как там в Arduino IDE - я, слава богу, не знаю. :)
От тут про форматный вывод лучше написано http://microsin.net/programming/ARM/secrets-of-printf.html