2015-07-08 3 views
2

Когда я проверяю свой код, я временно добавляю сообщения Serial.print, чтобы узнать, что делает мой код. Это довольно утомительно, потому что в мире Arduino нет такой вещи, как printf(). Плюс иногда я забываю удалить Serial.print(), и я должен искать их позже в своем коде, чтобы удалить их. И если я поместил Serial.print() в цикл, вывод будет прокручиваться так быстро, что я не могу действительно отслеживать изменение значений. Затем мне нужно delay(), которые являются еще одним фрагментом тестового кода для последующего удаления. Есть ли библиотека или инструмент, который упрощает эту задачу?Arduino: Лучший способ контролировать переменные, чем Serial.print()?

ответ

1

Если у вас есть Visual Studio, вы можете использовать VisualMicro для реальной отладки, включая точки останова и мониторинга значений: http://www.visualmicro.com/page/Debugging-for-Arduino.aspx

Он работает с сообществом редакции Visual Studio (который является бесплатным): http://www.visualstudio.com/products/visual-studio-community-vs

Я использовал VisualMicro много, и это реальная экономия времени, потому что вы действительно можете сосредоточиться на отладке, а не на добавлении вызовов журналов.

1

Вы можете использовать испытанный и истинный условный метод компиляции, такие как с:

#ifdef DEBUGGING 
    Serial.print (something); 
    Serial.print (somethingElse); 
    delay (1000); 
#endif 

Затем скомпилировать Йор тестовый код с установленным флагом DEBUGGING, в то время оставляя его в производстве код.

Таким образом, вам не нужно удалять код отладки из вашего источника, он автоматически удаляется самим компилятором.

+0

Это хорошая идея, но имейте в виду, что использование серийных отпечатков может изменить поведение кода и добавить или удалить ошибки, которые у вас не будут без отпечатков. Был там ... – ladislas

+0

Ну, да, но тогда они, как правило, Heisenbugs, и в этом случае отладчик также может это сделать, так как может работать ваш код в третьей среде месяца :-) – paxdiablo

+0

ahah! не знал имени Гейзенбюга, мне это нравится! :) – ladislas

Смежные вопросы