Discuz! Board

标题: stm8s103的ADC转换程序 怎么跑不起来呀 [打印本页]

作者: key    时间: 2015-1-30 08:24
标题: stm8s103的ADC转换程序 怎么跑不起来呀
void ADC_Init(void)
{
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_0,
          ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE,
          ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE);


}
void ADConvert(void)
{
  unsigned char count=0;
  ADC1->CR1|=0x02;
  ADC1_StartConversion();
  while(count<10)
{
   while(ADC1_GetConversionValue()==RESET);
    ADC1_ClearFlag(ADC1_FLAG_AWS2);

   ADCValue[count]=ADC1_GetConversionValue();
    count++;
  }
  ADC1->CR1&=~0x02;
}

void Digutal(void)
{
  unsigned char i,j;
  unsigned int temp;

  for(i=10;i>=1;i--)
  {
         for(j=0;j<=(i-1);j++)
         {
           if(ADCValue[j]>ADCValue[j+1])
           {
             temp=ADCValue[j];
             ADCValue[j]=ADCValue[j+1];
             ADCValue[j+1]=temp;
           }
         }
  }
  voltageADC=0;
  for(i=2;i<=7;i++)
  voltageADC+=ADCValue[i];
  voltageADC/=6;  
  voltage=(unsigned int)((unsigned long)voltageADC*3240UL/1023UL);
}


作者: admin    时间: 2015-1-30 20:21
出现什么状态?
作者: key    时间: 2015-1-31 09:56
现在能读出数来,但是比较乱是不是没有参考电压的问题,stm8s103数据手册上没有关于参考电压的解释
作者: admin    时间: 2015-1-31 15:06
key 发表于 2015-1-31 09:56
现在能读出数来,但是比较乱是不是没有参考电压的问题,stm8s103数据手册上没有关于参考电压的解释

肯定需要参考电压,你看管脚的定义,是不是电源就直接给的参考电压
作者: key    时间: 2015-1-31 16:25
admin 发表于 2015-1-31 15:06
肯定需要参考电压,你看管脚的定义,是不是电源就直接给的参考电压

ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_2, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_LEFT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE);


已解决 AD部分没问题 在显示上出现问题了。




欢迎光临 Discuz! Board (http://www.qfv8.com/) Powered by Discuz! X3