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 использует потоки, и вам просто нужно убедиться, что ваша программа не умирает до завершения потоков. Когда все потоки завершатся, процесс завершится в конце.