Функция yield() определена в библиотеке Arduino и вызывается автоматически по прерываниям из (во время работы) функции delay()

fghhft

unsigned int n = 0;
unsigned long k = 0;

void setup() {
Serial.begin(9600);
  while (!Serial) {
  }
}

void loop() {
  n++;
  Serial.print(n);
  Serial.print(' ');
  k = 0;
  delay(1000);
  Serial.println(k);
}

void yield(){
  k++;
}

Лист. 1.

3 202956
4 202956
5 202956
6 202956

Вывод 1.

Другие функции задержки не используют прерывания и не вызывают функцию yield()

unsigned int n = 0;
unsigned long k = 0;

void setup() {
Serial.begin(9600);
  while (!Serial) {
  }
}

void loop() {
  noInterrupts();
  n++;
  Serial.print(n);
  Serial.print(' ');
  k = 0;
  _delay_ms(1000);
  Serial.println(k);
}

void yield(){
  k++;
}

Лист. 2.

152 0
153 0
154 0
155 0
156 0

Вывод 2.