Не так давно, я публиковал в подарок начинающим текст функции SerialPrintf. Если пользоваться ею, то задача становится настолько тривиальной, что даже неинтересно.
/*
* SerialPrintf
* Реализует функциональность printf в Serial.print
* Применяется для отладочной печати
* Параметры как у printf
* Возвращает
* 0 - ошибка формата
* отрицательное чило - нехватка памяти, модуль числа равен запрашиваемой памяти
* положительное число - количество символов, выведенное в Serial
*/
const size_t SerialPrintf (const char *szFormat, ...) {
va_list argptr;
va_start(argptr, szFormat);
char *szBuffer = 0;
const size_t nBufferLength = vsnprintf(szBuffer, 0, szFormat, argptr) + 1;
if (nBufferLength == 1) return 0;
szBuffer = (char *) malloc(nBufferLength);
if (! szBuffer) return - nBufferLength;
vsnprintf(szBuffer, nBufferLength, szFormat, argptr);
Serial.print(szBuffer);
free(szBuffer);
return nBufferLength - 1;
}
/*
* Пример использования SerialPrintf
*/
void setup() {
Serial.begin(19200);
while(!Serial) yield();
for (short register i=0; i<1000; i++) {
SerialPrintf("Klapa %03d\n", i);
delay(100);
}
}
void loop() {
}
Скетчи у вас коллеги все не правильные.
Во первых вы пишите программу!!! В программе должно быть куча переменных, а так же всяких разный условий!
А то 3 сторчки всего... С размахом нужно и чтобы никто ни чего не понял! Вот так:
Скетчи у вас коллеги все не правильные.
Во первых вы пишите программу!!! В программе должно быть куча переменных, а так же всяких разный условий!
А то 3 сторчки всего... С размахом нужно и чтобы никто ни чего не понял! Вот так ...........
JolliBiber, вам 2 за сочинение. Загрузил - летит каша. Сделал медленнее получилось вроде того:
Klapautsiy
lapautsy
apautsy
pautsy
autsy
utsy
tsy
sy
y
а потом вообще билиBiberда :)
Не работает...однако :)
JolliBiber, вам 2 за сочинение. Загрузил - летит каша. Сделал медленнее получилось вроде того:
.....
а потом вообще билиBiberда :)
Не работает...однако :)
Я крайне редко даю решения при использовании которых не надо думать ;)
Вот уже лучше. Смотрится красиво, но работает неправильно.
Я крайне редко даю решения при использовании которых не надо думать ;)
OK. Подумаем на досуге :)
Вот уже лучше. Смотрится красиво, но работает неправильно.
мне тоже понравилось - закажу дохтору постер с картой Канады в стиле ascii-арт-Клапауций
*шо там он сказал - работать не будет потому, что он не думал, когда писал код?
Продолжение будет?
Не так давно, я публиковал в подарок начинающим текст функции SerialPrintf. Если пользоваться ею, то задача становится настолько тривиальной, что даже неинтересно.
работает но пока ещё ни чего не понял буду разбиратся.
Ну и для любителей краткости можно использовать сокращенный if...:
Только детям на ночь не показывайте...
Изучал....размышлял...Нашел описки. Должно быть n<10 и n<100 (описки увидел когда запускал скетч, в районе 9 и 99 работало неправильно)
оно только с виду страшное, на самом деле простое.
Tomasina, спасибо! Кое-чего понял.
Описки там нет, все выводит корректно, во всех разрядах. А косяк в строке 3 - она ни на что не влияет, поэтому можно выкинуть.
Приведи свой код (я знаю где у тебя неточность, но попробуй найти сам).
Описки там нет, все выводит корректно, во всех разрядах. А косяк в строке 3 - она ни на что не влияет, поэтому можно выкинуть.
Приведи свой код (я знаю где у тебя неточность, но попробуй найти сам).
я в курсе, поэтому и прошу привести свой код.
У меня этого не наблюдается.
я в курсе, поэтому и прошу привести свой код.
У меня этого не наблюдается.
Это твой, вообще-то :)
а вот это уже интересно, потому как у меня этот код выдает все корректно:
А твои пропуски нуля выдает только при таком коде:
P.S. IDE 1.0.5
а вот это уже интересно, потому как у меня этот код выдает все корректно:
А твои пропуски нуля выдает только при таком коде:
P.S. IDE 1.0.5
У меня IDE 1.6.5. Если 9 заменить на 10, а 99 на 100, то все ок.
Офигеть! Оказывается и так, и так можно ++n и n++. Это не одно и тоже?
нет, не одно и то же.
n++ сначала делает действие, потом прибавляет единичку.
++n сначала прибавляет единичку, потом делает действие.
Офигеть! Оказывается и так, и так можно ++n и n++. Это не одно и тоже?
n++ - результатом является значение n ДО инкрементирования
++n - результатом является значение n ПОСЛЕ инкрементирования
Например:
n = 1:
a = n++;
Имеем: n=2, а a=1
А в случае
n = 1:
a = ++n;
и n, и a будут равны 2
-----------------
Упражнение для самостоятельного решения. Чему будут равны n и a после исполнения кода:
n = 1:
a = ++n++;
нет, не одно и то же.
n++ сначала делает действие, потом прибавляет единичку.
++n сначала прибавляет единичку, потом делает действие.
.............................
Спасибо.
..........
Упражнение для самостоятельного решения. Чему будут равны n и a после исполнения кода:
n = 1:
a = ++n++;
Так?
Скетчи у вас коллеги все не правильные.
Во первых вы пишите программу!!! В программе должно быть куча переменных, а так же всяких разный условий!
А то 3 сторчки всего... С размахом нужно и чтобы никто ни чего не понял! Вот так:
Скетчи у вас коллеги все не правильные.
Во первых вы пишите программу!!! В программе должно быть куча переменных, а так же всяких разный условий!
А то 3 сторчки всего... С размахом нужно и чтобы никто ни чего не понял! Вот так ...........
Обалдеть! И она не просто так! Она работает!
Есть простор для изучения :)