- #include <stdlib.h> 
 
- #include <stdio.h> 
 
- #include <string.h> 
 
- #include <fcntl.h> 
 
- #define SLOT_DIR "/sys/devices/bone_capemgr.9/slots" 
 
- #define PWM1_DIR "/sys/bus/platform/drivers/pwm_test/pwm_test_P8_13.15"
 
- #define PWM1_duty "/sys/bus/platform/drivers/pwm_test/pwm_test_P8_13.15/duty"
 
- #define PWM1_period "/sys/bus/platform/drivers/pwm_test/pwm_test_P8_13.15/period"
 
- #define PWM1_run "/sys/bus/platform/drivers/pwm_test/pwm_test_P8_13.15/run"
 
- #define MAX_BUF 80
 
 
- void main() 
 
- { 
 
- int fd, len; 
 
- char buf[MAX_BUF]; 
 
- char ch; 
 
- int i; 
 
- FILE *stream=NULL;
 
- //Cofig P8.13 PWM
 
- fd = open(SLOT_DIR, O_WRONLY); 
 
- len = snprintf(buf,sizeof(buf),"bone_pwm_P8_13"); 
 
- write(fd,buf,len); 
 
- len = snprintf(buf,sizeof(buf),"am33xx_pwm"); 
 
- write(fd,buf,len); 
 
- close(fd); 
 
- //Disable P8.13 PWM
 
- fd = open(PWM1_run, O_WRONLY); 
 
- len = snprintf(buf,sizeof(buf),"0");        
 
- write(fd,buf,len); 
 
- close(fd); 
 
- //set period 20000000
 
- fd = open(PWM1_period, O_WRONLY); 
 
- len = snprintf(buf,sizeof(buf),"20000000"); 
 
- write(fd,buf,len); 
 
- close(fd); 
 
- //set duty 20000000
 
- fd = open(PWM1_duty, O_WRONLY); 
 
- len = sprintf(buf,"%d",10000000);; 
 
- write(fd,buf,len); 
 
- close(fd); 
 
- //Enable P8.13 PWM
 
- fd = open(PWM1_run, O_WRONLY); 
 
- len = snprintf(buf,sizeof(buf),"1");        
 
- write(fd,buf,len); 
 
- close(fd);
 
 
 
- while(1)
 
- {
 
- for(i=0;i<10;i++)
 
- {
 
- //Disable P8.13 PWM
 
- fd = open(PWM1_run, O_WRONLY); 
 
- len = snprintf(buf,sizeof(buf),"0");        
 
- write(fd,buf,len); 
 
- close(fd); 
 
- //set duty 
 
- fd = open(PWM1_duty, O_WRONLY); 
 
- len = sprintf(buf,"%d",1000000*i);; 
 
- write(fd,buf,len); 
 
- close(fd); 
 
- //Enable P8.13 PWM
 
- fd = open(PWM1_run, O_WRONLY); 
 
- len = snprintf(buf,sizeof(buf),"1");        
 
- write(fd,buf,len); 
 
- close(fd);
 
- usleep(1000000);
 
- }
 
- }
 
- }