1449|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

MSP430G2553采集交流VPP [复制链接]

/*P1.1检测VPP,最小可采40HZ*/
#include "msp430g2553.h"
unsigned int table_Valu[128] = {0}; //存放ADC10采样数据
float y,vpp;
void  ADC10_WaveSample(unsigned char inch);
void ADC10_init();
void main(void)
{    int k=0,max,min;
WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
BCSCTL1 = CALBC1_12MHZ;          // Set range
DCOCTL = CALDCO_12MHZ;         // Set DCO step + modulation
DCOCTL = DCOCTL&0xE0;    //关闭混频器,得到纯净频率
ADC10_init();
WDTCTL = WDT_ADLY_1000;                    // WDT 1000ms, ACLK, interval timer
IE1 |= WDTIE;
_enable_interrupts();
while(1)
{
  ADC10_WaveSample(1);
  max=table_Valu[1];
  min=table_Valu[1];
  for( k=0;k<128;k++)
  { if(table_Valu[k]>max)
   max=table_Valu[k];
    if(table_Valu[k]    min=table_Valu[k];
  }
  y=(max-min)*3.58/1023;
        vpp=y/0.748-0.877;
}
}
/******************采128个点********************************/
void  ADC10_WaveSample(unsigned char inch)
{
int j=0,i=0;
     for( j=0;j<128;j++)                //循环采样64次
     {
      ADC10CTL0 |= ENC + ADC10SC;              // Sampling and conversion start
       for(i=0;i<200;i++);         //延时采样
       table_Valu[j]=ADC10MEM;
      }
}
//-----ADC10 初始化-----
void ADC10_init(void)
{  int m=0;
ADC10CTL0 &= ~ENC;
ADC10CTL0 =SREF_0 + ADC10SHT_3 +ADC10ON;//电源电压为参考电压
ADC10CTL1 = INCH_1+CONSEQ_0;
ADC10AE0 |= BIT1;
for(m=0;m<350;m++);
    ADC10CTL0 |= ENC;
}


 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表