I use the wiringPi library so to run this code you should install wiringPi
#include <stdio.h> #include <unistd.h> #include <stdint.h> #include "wiringPi.h" void gpioSetupCostum() { printf("gpioSetup has started\n"); wiringPiSetupGpio (); usleep(1000); printf("wiringPiSetupGpio was a succes\n"); pinMode(18, PWM_OUTPUT); usleep(1000); printf("pinMode was a succes\n"); pwmSetMode(PWM_MODE_MS); usleep(1000); printf("pwmSetMode was a succes\n"); pwmSetRange(1024); usleep(1000); printf("pwmSetRange was a succes\n"); pwmSetClock(47); usleep(1000); printf("pwmSetClock was a succes\n"); } void gpioClose() { pwmSetMode(PWM_MODE_BAL); usleep(1000); pinMode(18, INPUT); usleep(1000); } int main() { int GPIOCounter, SampleCounter; double PWM[11]={0, 1 , 2 , 3, 4, 5, 6, 7, 8, 9, 10}; const int len = 11; int AmountOfSamples = 200; printf("Start setup\n"); gpioSetupCostum(); printf("Finish setup\n"); printf("Start reading input ports\n"); for(SampleCounter =1; SampleCounter <= AmountOfSamples; SampleCounter++){ printf("Sample = %d\n", SampleCounter); for(GPIOCounter = 0; GPIOCounter < len; GPIOCounter++){ printf("PWM input = %.1f\n", PWM[GPIOCounter]); pwmWrite(18, (int)((PWM[GPIOCounter] * 1024)/10)); usleep(1000000); } } gpioClose(); }J