Найти в Дзене

Отладка на Arduino

При разработке проекта важна отладка, мы делаем её средствами Serial.println(). Чтобы после окончания разработки не убирать из кода все вызовы Serial и не нагружать код условными конструкциями ifdef DEBUG…. endif, можно сделать так: ifdef DEBUG_ENABLE define DEBUG(x) Serial.println(x) else define DEBUG(x) endif Если DEBUG_ENABLE задефайнен – все вызовы DEBUG() в коде будут заменены на вывод в порт. Если не задефайнен – они будут заменены НИЧЕМ, то есть просто “вырежутся” из кода! Также по DEBUG_ENABLE можно запустить сериал и получить полный контроль над отладкой: если она не нужна – убрали DEBUG_ENABLE и из кода убрался запуск порта и все выводы, что резко сокращает объём занимаемой памяти: // раздефайнить или задефайнить для использования// define DEBUG_ENABLE ifdef DEBUG_ENABLE define DEBUG(x) Serial.println(x) else define DEBUG(x) endifvoid setup() { ifdef DEBUG_ENABLE Serial.begin(9600); endif}void loop() { DEBUG("kek"); delay(100);}

При разработке проекта важна отладка, мы делаем её средствами Serial.println(). Чтобы после окончания разработки не убирать из кода все вызовы Serial и не нагружать код условными конструкциями

ifdef DEBUG…. endif, можно сделать так:

ifdef DEBUG_ENABLE

define DEBUG(x) Serial.println(x)

else define DEBUG(x) endif

Если DEBUG_ENABLE задефайнен – все вызовы DEBUG() в коде будут заменены на вывод в порт. Если не задефайнен – они будут заменены НИЧЕМ, то есть просто “вырежутся” из кода! Также по DEBUG_ENABLE можно запустить сериал и получить полный контроль над отладкой: если она не нужна – убрали DEBUG_ENABLE и из кода убрался запуск порта и все выводы, что резко сокращает объём занимаемой памяти:

// раздефайнить или задефайнить для использования//

define DEBUG_ENABLE ifdef DEBUG_ENABLE define DEBUG(x) Serial.println(x) else define DEBUG(x) endifvoid setup() { ifdef DEBUG_ENABLE Serial.begin(9600); endif}void loop() { DEBUG("kek"); delay(100);}