智能车制作

标题: dac实验adc检测时,串口显示会有50的误差,这怎么解释啊 [打印本页]

作者: 回忆的沙漏    时间: 2013-11-11 14:44
标题: dac实验adc检测时,串口显示会有50的误差,这怎么解释啊

看野火三天入门  dac实验adc检测时,串口显示会有50的误差,这怎么解释啊

void  main(void)   
47.  {   
48.      u16 i=0;   
49.      u16 ADresult;   
50.      u8  com=0;   
51.     
52.      dac_once_init(DAC0,VDDA);               //初始化DAC0   
53.     
54.      adc_init(ADC0,SE14);     //初始化ADC0_SE14 ,从adc.h里的表格就可以看到ADC0_SE14对应为PTC0
55.     
56.      while(1)   
57.      {   
58.          printf("\n请发送 '+' 或 '-' 来控制电压增减。发送其他则保存不变");   
59.          com = uart_getchar(FIRE_PORT);          //等待串口命令   
60.     
61.          switch(com)                             //通过串口来控制   
62.          {   
63.           case '+':i+=500;break;   
64.           case '-':i-=500;break;   
65.           default:break;   
66.          }   
67.     
68.          if(i>=0x1000) i=0;                      //12bit   
69.     
70.          dac_once_convert(DAC0,i);                               //DAC转换   
71.          printf("\nDAC转换的值为:%d",i);                        //串口打印转换值   
72.     
73.          ADresult = ad_once(ADC0,SE14,ADC_12bit);                //读取 ADC0_SE14 ,12位精度
74.          printf("\n读取到ADC值为:%d \n",ADresult);              //串口打印转换值   
75.      }   
76.  }


为什么会约50的误差? 这怎么解释啊


作者: CRFX    时间: 2014-8-5 14:45
同求!   找到了吗?
作者: 天翊    时间: 2014-8-5 16:26

作者: horizon_z40    时间: 2014-8-5 16:39
12位模式,50的误差也正常。。并不是那么精确的




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2