⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad.c

📁 基于MSP430的长度测量 包括16*2液晶程序
💻 C
字号:
#include "AD.h"
#include "KEY.h"
#include "LCD.h"
#include "stdio.h"
int ad(void)
{
      P6SEL|=0X02;
      ADC12CTL0=ADC12ON+SHT0_2+MSC;
      ADC12CTL1=SHP+CSTARTADD_1;  
      ADC12MCTL1=SREF_2+INCH_1;
      ADC12CTL0|=ENC;
      ADC12CTL0|=ADC12SC;
      while((ADC12IFG&(ADC12BUSY<<1))==0); 
      return ADC12MEM1;
 }
void measure()
{ 
      
   double res=0;
   char buf[20],i;
   unsigned int data=0;
   data=averg();
      
  for(i=0;i<45;i++)
  {
    if( Data_Ram[i]<=data && data<=Data_Ram[i+1])   
    {res= ((2.0/(Data_Ram[i+1]-Data_Ram[i])*(data-Data_Ram[i])+2.0*i));
      break;}
    else if(data>Data_Ram[45]) 
    { lcd_moveto(20);
      lcd_string("error           ");
    }
  }

      /*sprintf(buf,"%s%d","result is:",data);
      lcd_moveto(0);
      lcd_string(buf);*/
      sprintf(buf, "Length:%0.2f mm", res);
      lcd_moveto(0);
      lcd_string(buf);
      
}


int averg()
{   unsigned char flag=1,i;
    long int sum=0,test_value[20]={0},buf=0;
    for(i=0;i<20;i++)
    {
        test_value[i]=ad();
    }
    for(unsigned char i=0;i<20;i++)
    {
      if(flag==0)break;
      flag=0;
      for(unsigned char j=0;j<(19-i);j++)
      {
        if (test_value[j]>test_value[j+1])
        {
          buf=test_value[j];
          test_value[j]=test_value[j+1];
          test_value[j+1]=buf;
          flag=1;
        }
      }
    }
    for(i=6;i<16;i++)
    {
     sum+=test_value[i]; 
    }
     sum=sum/10;  
    return sum;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -