查看: 8402|回复: 6

CC2530 AD转换 程序疑问

[复制链接]
鳄鱼的眼泪 发表于 2012-8-27 09:46:52 | 显示全部楼层 |阅读模式
我这有一个CC2530的测试程序,是关于AD转换的。但是我不知道里面的那个 温度采集后为什么要累加64,每次除以2 ?
  1. void main(void)
  2. {       
  3.         char i;
  4.         char TempValue[10];
  5.         
  6.         InitUART0();                                    //初始化串口
  7.         initTempSensor();                               //初始化ADC
  8.         while(1)
  9.         {
  10.           AvgTemp = 0;
  11.           for(i = 0 ; i < 64 ; i++)
  12.           {
  13.             AvgTemp += getTemperature();              
  14.             AvgTemp >>= 1;                              //每次累加后除2.
  15.           }
  16.             
  17.              sprintf(TempValue, (char *)"%dC ", (INT8)AvgTemp);
  18.              UartTX_Send_String(TempValue,4);           
  19.              Delay(50000);
  20.         }
  21. }
复制代码
就是其中的FOR里面的语句,加入第一次采集到了20,那么第一次循环后就只有10了,第二次循环采集到的还是20那么,第二次循环后只有15········不知道为没什么要这样只呢?有点那一理解啊···求指点啊·············
 楼主| 鳄鱼的眼泪 发表于 2012-8-29 12:47:24 | 显示全部楼层
人气有点低啊~~O(∩_∩)O~{:soso__11534707893384167366_3:}
longdandanv 发表于 2012-9-13 12:58:22 | 显示全部楼层
交流交流好啊!楼主真厉害
 楼主| 鳄鱼的眼泪 发表于 2012-9-17 11:11:02 | 显示全部楼层
丢人了 O(∩_∩)O哈哈~{:soso__8961432591078930798_3:}
真诚到永远 发表于 2012-9-29 19:46:30 | 显示全部楼层
你不应该每次相加后除以2,应该在for循环外面除以64,相当于求64次的平均值,这样比较准确。
MichaelAllen 发表于 2012-11-10 22:03:03 | 显示全部楼层
一直不知道2530的片上tempsensor怎么算,最好告诉我个最新的DN-xx。
pierce033 发表于 2013-4-21 10:49:00 | 显示全部楼层
这个做法很好啊,只是在起始的时候数据不可靠,到后来就特别的准确了,你可以自己算算到20次的时候就误差很小了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表