sweet1985 发表于 2012-9-24 09:10:00

各位谁有 PUdn 的账号 帮帮忙呗

http://www.pudn.com/downloads182/sourcecode/embed/detail854403.html

ccstc 发表于 2012-9-24 09:23:45


#include <MSP430X42X.h>   
#include <math.h>   
#include "lcd.h"   
#include "SD16.H"   
#include "flash.h"   
#include "bastimer.h"   
#include "key.h"   
#include "adjust.h"   
#include "measure.h"   
#include "TIME_A.H"   
#include "set.h"   
#include "shutdown.h"   
#include "key.h"   
#include "tmp275.h"   
/*************************************************************************/   
/*                            design by 杨焕刚                           */   
/*            2009年6月于创威电子科技有限公司                        */   
/*************************************************************************/   
//以下设置方法可以得到24位的AD数据   
//读取数据前 不能停止转换   
   
char SD16_2=0;//通道2转换完成标志   
   
void sd16_init(void)   
{   
SD16CTL =SD16DIV_0+SD16SSEL_0; //1分频,MCLK,外部参考源   
SD16INCTL2 = SD16GAIN_1 + SD16INCH_1;// 1倍增益, 通道1,第4次采样后引发中断   
SD16CCTL2 =SD16IE+SD16OSR_256;   // 高速速电流缓冲,连续转换,256过采样,实现24位AD   
SD16CCTL2 |=SD16DF;//双极二的补码   
}   
   
#pragma vector = SD16_VECTOR   
__interrupt void SD16_ISR(void)   
{ IE2 &= ~BITE;      //关闭基本定时器中断   
//判断通道转换完成,并将自定义的标志位置1   
if ((SD16CCTL2 & SD16IFG)) SD16_2=1;   
SD16CCTL2 &=~ SD16IFG;   
SD16CCTL2 &=~ SD16OVIFG;      
IE2 |= BITE;      //开启基本定时器中断   
}   
   
   
//中位值滤波法      
//* 31 次值取中值      
//排序采用冒泡法      
long filter0()      
{ unsigned long VAR2=0;//SD16_2的转换数据   
unsigned long value_buf;   
unsigned long temp=0;   
char count,i,j;   
SD16CCTL2 |= SD16SC;//开始转换   
for ( count=0;count<31;count++)      
{   
    do{    }   
    while(SD16_2==0);   
    SD16_2=0;   
    //读转换结果   
    //24位AD   
    SD16CCTL2 &= ~SD16LSBACC;   
    VAR2 = (long)SD16MEM2 < 8;   
    SD16CCTL2 |= SD16LSBACC;   
    VAR2 |= ((long)SD16MEM2 & 0xff00) >> 8;   
    value_buf = VAR2;      
}   
SD16CCTL2 &=~SD16SC;   //关闭转换VAR0;   
for (j=0;j<31-1;j++)      
{      
    for (i=0;i<31-j;i++)      
      {      
      if ( value_buf>value_buf )      
          {      
            temp = value_buf;      
            value_buf = value_buf;      
            value_buf = temp;      
          }      
      }      
   }      
return value_buf[(31-1)/2];      
}   
   
//算术平均滤波法      
//80次平均滤波   
long filter()      
{   
char i;   
unsigned long long sum = 0;      
for (i=0;i<80;i++)      
{      
    sum += filter0();      
}      
return (unsigned long)(sum/80);      
} 能预览的何必要下文件呢?

568581185 发表于 2012-10-2 20:58:37

ccstc 发表于 2012-9-24 09:23:45 static/image/common/back.gif
#include   
#include   
#include "lcd.h"   
#include "SD16.H"   
#include "flash.h"   
#include "

原来能预览?一直不知道
页: [1]
查看完整版本: 各位谁有 PUdn 的账号 帮帮忙呗