C wiringPi дождитесь завершения функции

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

#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>

#include <wiringPi.h>
#include <softPwm.h>

int main (int argc, char *argv[])
{
  int val = 10;
  if (argc > 1) {
    val = atoi(argv[1]);
  }
  wiringPiSetup ()  ;

  pinMode(1, OUTPUT);
  softPwmCreate (1, 0, 100) ;
  printf ("Soft Pwm created: %s!\n", argv[1]) ;

  softPwmWrite (1, val) ;

  delay (200);

  return 0;
}

И это работает довольно хорошо, пока я не удалю строку с задержкой (200). Как я могу дождаться завершения функции softPwmWrite без задержки () до завершения программы? Я использую Linux и библиотеку wiringPi. Благодарю.

1 ответ

Включают pthread.h и позвонить pthread_exit:

#include <pthread.h>

....

softPwmWrite (1, val) ;
pthread_exit(0);
}

Когда softPwmWrite возвращается, он выйдет из программы. softPwmWrite использует потоки, и вам просто нужно убедиться, что ваша программа не умирает до завершения потоков. Когда все потоки завершатся, процесс завершится в конце.

Другие вопросы по тегам