#include <16F877.h>
#device adc=8
#use delay(clock=20000000)
#fuses NOWDT,RC, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG

#define up_pwm1 pin_d0
#define down_pwm1 pin_d1
#define up_pwm2 pin_d2
#define down_pwm2 pin_d3

int16 pwm1;
int16 pwm2;


void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DIV_BY_1,255,1);
   setup_ccp1(CCP_PWM);
   setup_ccp2(CCP_PWM);
   set_pwm1_duty (500);
   set_pwm2_duty (500);
   pwm1=500;
   pwm2=500;
   while(1)
   {
     if(!input(up_pwm1))
     { delay_ms(1); 
      pwm1++;
      if(pwm1>1023) pwm1=1023;
      set_pwm1_duty (pwm1);
      
     }
     //------------------------
     if(!input(down_pwm1))
     {delay_ms(1);
     if(pwm1>1)pwm1--;
     set_pwm1_duty (pwm1);
     
     }
     //-----------------------
     if(!input(up_pwm2))
     {
      delay_ms(1); 
      pwm2++;
      if(pwm2>1023) pwm2=1023;
      set_pwm2_duty (pwm2);
     }
     //------------------------
     while(!input(down_pwm2))
     {
     delay_ms(1);
     if(pwm2>1)pwm2--;
     set_pwm2_duty (pwm2);
     }
     //pwm1=1000;
    //set_pwm1_duty (pwm1);
   }

}
