#include __CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_ON & CLKOUTEN_OFF & IESO_OFF& FCMEN_OFF); __CONFIG(PLLEN_ON & LVP_OFF); void wait_ms(int value){ T2CON = 0b00000111; //T2=ON int i; for(i = 0; i < value; i++){ TMR2 = 0; while(1){ if(TMR2 > 124) break; } } T2CON = 0b00111001; //T2=OFF } void main(){ //---Clock--- OSCCON = 0b11110000; //32MHz //---IO setting--- TRISC = 0b11111111; //0:output 1:input PR6 = 124; //puls period CCP1CON = 0b00001100; //PWM mode CCPTMRS0 = 0b00000010; //CCP1 uses Timer6 CCPR1L = 0b00000000; //puls width TMR6IF = 0; T6CON = 0b00000111; //T6 ON, 1:64 TRISC = 0b11111011; //RC2 is output int i; //---sensor read--- while(1){ for (i=0; i<10; i++){ CCPR1L = i*12; wait_ms(1000); } } }