C wiringPi等到功能完成

时间:2015-07-16 07:25:33

标签: 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完成而没有 delay()? 我正在使用 Linux wiringPi 库。感谢。

1 个答案:

答案 0 :(得分:1)

加入pthread.h并致电pthread_exit

#include <pthread.h>

....

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

softPwmWrite返回时,它将退出该程序。 softPwmWrite使用线程,您只需要确保程序在线程完成之前不会死亡。当所有线程完成后,该过程将在最后退出。