Отладка программы

Andrey2020
Offline
Зарегистрирован: 09.07.2020

Господа, подскажите новичку есть ли какая-то затычка универсальная для останова программы в нужной точке в целях отладки.

Например нужно что-то проверить и вывести на serial.print()

и тут надо сделать останов типа delay(100000000000000)

чтобы на комментировать всё остальную часть программы??  Что подскажете? Есть ли что-то модное типа HALT итп… ?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

while(!Serial.available());

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

изначально проектировать поблочно, что бы в нужный момент отключить все и проверить блок (часть функционала)

Andrey2020
Offline
Зарегистрирован: 09.07.2020

andriano пишет:

while(!Serial.available());

Тут типа ждёт пока не будет нажата клавиша??

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Ардуино отладку не поддерживает - нету у МК такой возможности. Поэтому отладка только через Serial.print()

FoxJone
Offline
Зарегистрирован: 19.04.2019

Andrey2020 пишет:

andriano пишет:

while(!Serial.available());

Тут типа ждёт пока не будет нажата клавиша??

ждет, пока ты хоть что то не пошлешь в Сом-порт.

Andrey2020
Offline
Зарегистрирован: 09.07.2020

FoxJone пишет:

Andrey2020 пишет:

andriano пишет:

while(!Serial.available());

Тут типа ждёт пока не будет нажата клавиша??

ждет, пока ты хоть что то не пошлешь в Сом-порт.

Ясно , тема раскрыта !

Спасибо

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

andriano пишет:

while (!Serial.available());

while(Serial.available()) Serial.read();

Наерна, так. :-)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Не факт.

У меня гораздо чаще ... char ch = Serial.read();

А потом анализируется этот ch и при необходимости выводится дополнительная информация.

Ну т.е. read() - это уже часть другого самостоятельного и иногда весьма обширного блока.

Green
Offline
Зарегистрирован: 01.10.2015
#define PRINT(var)        do { Serial.print("\r\n"#var":"); Serial.println(var); } while (0)