Есть ли способ перейти к началу функции void loop() типа ключевого слова "continue" в c in loops?
Я новичок в программировании Arduino и пытаюсь сделать препятствие, избегая автомобиля с ультразвуковым датчиком и дифференциальной моделью водителя. Изучая, как его кодировать, я узнал, что вы можете выйти из функции void loop() с помощью exit(0), чтобы завершить программу, аналогичную break keyword в языке C.
Есть ли что-то подобное, что я могу использовать для имитации ключевого слова "continue", скажем, если я не хочу запускать код после определенной строки в функции void loop ().
@shyam, 👍1
Обсуждение1 ответ
В функции loop() функция return будет выполнять эту функцию. Выходя из функции, цикл for() в main() (которого мы не видим) будет повторяться снова, вызывая loop() снова.
Другой способ сделать то же самое-написать все в вашей функции setup (), включая любой вид цикла, который вы хотите построить, и использовать инструкции break; and continue;, как вы привыкли:
void setup(){
// pinMode() & digitalWrite() calls
// Инициализируйте последовательный порт, если вам нужно
// Любая другая одноразовая настройка
//
// Здесь все происходит:
for( .... ){
// содержание цикла здесь
if( whatever ){
continue;
}
else if( something_else ){
break;
}
}
}
// Это просто останавливается навсегда, когда setup() заканчивается:
void loop(){
;
}
- Как объявить массив переменного размера (глобально)
- Программирование Arduino с использованием Python, а не C/C ++
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как справиться с rollover millis()?
- Является ли использование malloc() и free() действительно плохой идеей для Arduino?
- Можно ли сделать несколько функций loop() с помощью Arduino Uno?
- Печать string and integer LCD
- устаревшее преобразование из строковой константы в 'char*'
Если вы "возвращаетесь" из функции " цикл ()
, вы немедленно завершаете выполнение текущей итерации. Затем функция ' loop()запустится снова, так как она всегда зацикливается (для именования).loop ()- это такая же функция, как и любая другая. Он просто вызывается снова и снова в бесконечном цикле., @chrislИспользование "return;", как если бы это была обычная функция, казалось, работало. Сначала я подумал, что return будет делать то же самое, что и exit(0). Большое вам спасибо @chrisl., @shyam
Я думаю, что an'exit(0) просто приведет к бесконечному циклу,который ничего не делает. На микроконтроллере в любое время должен быть запущен код. Он не может вернуть управление операционной системе., @chrisl
да, я слышал, что использование exit(0) - плохая практика программирования на Arduino., @shyam