Есть ли способ перейти к началу функции 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?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- устаревшее преобразование из строковой константы в 'char*'
Если вы "возвращаетесь" из функции " цикл ()
, вы немедленно завершаете выполнение текущей итерации. Затем функция ' loop()
запустится снова, так как она всегда зацикливается (для именования).loop ()
- это такая же функция, как и любая другая. Он просто вызывается снова и снова в бесконечном цикле., @chrislИспользование "return;", как если бы это была обычная функция, казалось, работало. Сначала я подумал, что return будет делать то же самое, что и exit(0). Большое вам спасибо @chrisl., @shyam
Я думаю, что an'exit(0) просто приведет к бесконечному циклу,который ничего не делает. На микроконтроллере в любое время должен быть запущен код. Он не может вернуть управление операционной системе., @chrisl
да, я слышал, что использование exit(0) - плохая практика программирования на Arduino., @shyam