平均值

2019-08-08 23:07发布

#include "msp430f2122.h"

unsigned char key_value();
void main( void )
{   
   // Stop watchdog timer to prevent time out reset
   WDTCTL = WDTPW + WDTHOLD;

  while(1)
   {
    P1DIR |=0X80;
     key_value();
    }

}

unsigned char key_value()
{ unsigned char i,ad_value=0;
   ADC10CTL0 = SREF_1+REFON+REF2_5V+ADC10SHT_2 + ADC10ON;
  ADC10CTL1 = INCH_7+CONSEQ_2;
   ADC10AE0 |= 0x80;                    
   P1DIR |= 0x01;                     
   ADC10CTL0 |= ENC+ADC10SC;
  if (ADC10MEM*2.5/1023<2)
   {   
     P1OUT |=0X80;
    for(i=0;i<4;i++)
     {
      ADC10CTL0 |= ENC+ADC10SC;
     while (ADC10CTL1 & ADC10BUSY);
      ad_value=ad_value+ADC10MEM;
     }
     ad_value=ad_value/4;
   if(ad_value*2.5/1023>0.2)
     P1OUT |=0X01;
   else
     P1OUT &=~0X01;
   }
return ad_value;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
liliang9554
1楼-- · 2019-08-09 13:43
 精彩回答 2  元偷偷看……
biechedan
2楼-- · 2019-08-09 15:03
liliang9554 发表于 2013-9-24 19:41
主要是想按键检测,我这程序直接读取ADC10MEM能得到准确的电压值,但是转换4次求平均值,值就不正确 ...

电源要稳定的。
biechedan
3楼-- · 2019-08-09 18:01
参考电压的。
vivilzb1985
4楼-- · 2019-08-09 18:07
没看出来楼主这怎样求得平均值的,建议没采集一次的值计入一个缓存中,记够4次后做求和做除非就可以了

一周热门 更多>