2013-10-05 5 views
1

я обнаружил, что мой Arduino приложение будет вылетать, если я использую следующую логику:Почему простая логика разбивает мой код arduino?

if (boolA && boolB) { 
    doSomething(); 
} 

В простой программе будет работать, но с достаточно большим проектом, я считаю, что я должен изменить выше:

if (boolA) { 
    if (boolB) { 
     doSomething(); 
    } 
} 

В ряде проектов я отследил причину этой логики.

+0

кто ты? Следует учитывать, компилятор генерирует код короткого замыкания для оператора '(b1 && b2)'? ЕСЛИ нет, то, вероятно, существует проблема с 'b2', которую избегают во втором примере. – JackCColeman

+0

:) Оказалось, что второй пример выше не очень изящный, так как я должен дублировать любые блоки. – J0hnG4lt

ответ

0

Если вы хотите проверить память, вы можете сделать это, используя Available Memory. И здесь я ставлю эти файлы в библиотеке, вы можете использовать более легко: Avalaible Memory Lib

Хотя, фактический код будет лучше, чтобы попытаться решить проблему ...

+0

Это пример ошибки, которая будет сбой: 'if (! Client.connected() & (millis() - lastConnectionTime> postingInterval))' – J0hnG4lt

+0

может быть, это опечатка, но вам нужны два '&&' – ladislas

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