#include <12F683.h>
#device adc=10

#FUSES WDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOCPD                    //No EE protection
#FUSES NOPROTECT                //Code not protected from reading
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOPUT                    //No Power Up Timer
#FUSES BROWNOUT               //No brownout reset
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled

#use delay(clock=20000000,RESTART_WDT)
int16 value;
int8 duty;

void main()
{

   setup_adc_ports(sAN0|VSS_VDD);
   setup_adc(ADC_CLOCK_INTERNAL);
   //setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);setup_wdt(WDT_18MS|WDT_DIV_16);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DIV_BY_1,99,1);
   setup_ccp1(CCP_PWM);
   set_pwm1_duty(0);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

   // TODO: USER CODE!!
   //set_pwm1_duty(10);
    duty =0;
   while(true)
   {
    RESTART_WDT();
    
      restart_wdt();
     set_adc_channel(0);
     delay_us(10);
     value = read_adc();
     
     if(value <512 )
     {
       duty+=1;
       if(duty>30) duty=30;
       set_pwm1_duty(duty);
     }
     if(value>=514)
     {
      duty-=1;
      if(duty<1)duty=1;
      set_pwm1_duty(duty);
     }
    
   }

}
