/* ADT_wiringPi.c PWM Example. By Semillero ADT UPB-Bucaramanga */ #include #include #include #include #include #define ADT_GPIO_17 0 #define EVENT_EXIT (void)signal(SIGINT,control_event);\ (void)signal(SIGQUIT,control_event) /*the event exit of app*/ void control_event(int sig){ softPwmWrite(ADT_GPIO_17,0); delay(10);/*10 ms*/ exit(0); } int main(void) { EVENT_EXIT; char count=0; char flag=0; if(wiringPiSetup()==-1){printf("Oh my God!! :)\n"); return 0;} printf("Creating PWM\n"); /* first argument GPIO, Initial Value, PWM Range thread period*/ softPwmCreate(ADT_GPIO_17,0,100); printf("Setting PWM\n"); /*write to GPIO, Duty*/ softPwmWrite(ADT_GPIO_17,0); while(1){ if(flag==0){ count++;/*counter pwm*/ if(count>=100){flag=1;} } else if(flag==1){ count--;/*counter pwm*/ if(count<=0){flag=0;} } delay(10);/*10 ms*/ softPwmWrite(ADT_GPIO_17,count); } }