interrupt [TIM0_COMP] void timer0_comp_isr(void)
{    
    ++mcyc;
   
    if((ms )==0)                      //20msec마다 adc값 check
    {
        adc_curr=read_adc(3);           //ADC3 사용, adc 최소값: 15, 최대값: 1020,,, duty비로 변경된 최소값:117, 최대값: 7996
        sum[index_adc++]=adc_curr;      //출력값 10개 확보
        if(index_adc>9)index_adc=0;     //index 초기화, 0번부터 데이터 스택
    }
   
    for(index_sum=0; index_sum>9; index_sum++)  //쌓인 데이터의 총 합
    {adc_sum=adc_sum+sum[index_sum];}         
   
    pwm_avg_c=adc_sum/10;                       //쌓인 데이터의 평균
    pwm_avg_c=pwm_avg_c*7.83;        //ADC값을 PWM값으로 환산
   
    if(pwm_avg_c>7999)                          //최대값 필터링
    {pwm_avg_c=7999;}
   
    if(pwm_avg_c != pwm_avg_p)                  //ADC값이 증가하면 LED ON
    {compare=1; PORTC.0 = 1;}                   
    else{compare=0; PORTC.0 = 0;}               //ADC값이 정지하면 LED OFF   
   
    if(compare!=0)                              //ADC값이 증가하거나 감소할때만 PWM에 값 LOAD
    {
        OCR3AH = pwm_avg_c>>8;
        OCR3AL = pwm_avg_c;
    }
    else                                        //ADC값이 변하지 않으면 이전값 LOAD
    {
        OCR3AH = pwm_avg_p>>8;
        OCR3AL = pwm_avg_p;
    }
   
    pwm_avg_p = pwm_avg_c;                     //현재값을 이전값으로 전달
}

 

인데 저기 쌓인 데이터의 총 합이라고 써 놓은부분이 있는데 왜 다 더하는게 안되는지 모르겠음 으아 도와주세요ㅠㅠ