求助关于用msp430ADC采样测量PWM波的幅值

2019-07-15 16:03发布

void  ADCchushihua(void)
{
    P6SEL  |= 0x01;
    REFCTL0 &=~REFMSTR;
        ADC12CTL0 = ADC12ON + ADC12SHT0_2 + ADC12MSC+ADC12REF2_5V + ADC12REFON;
        ADC12CTL1 = ADC12SHP + ADC12CONSEQ_2;
        ADC12MCTL0 = ADC12SREF_1;
        ADC12IE = 0X01;
        ADC12CTL0 |= ADC12ENC;
        ADC12CTL0 |= ADC12SC;
}

#pragma vector= ADC12_VECTOR
__interrupt void ADC12ISR(void)
{
        static unsigned char index = 0;
        switch(__even_in_range(ADC12IV,34))
        {
        case 0:break;
        case 2:break;
        case 4:break;
        case 6:
        results[index] = ADC12MEM0;
        index++;
        if(index==128)
        {index=0;}

        }
}

void fuzhi()
{
   fzmax=results[0];
   fzmin=results[0];
   for(a=1;a<128;a++)
   {
          if(fzmax<results[a]){fzmax=results[a];}
          if(fzmin>results[a]){fzmin=results[a];}
   }

    fz=((fzmax-fzmin)*5000)/4095;

}

这样测出来的幅值有问题啊。,。
请教各位错在哪了。,。
再次谢谢各位了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。