历史上的今天

今天是:2024年10月30日(星期三)

正在发生

2019年10月30日 | 在msp430上使用AWM3300

发布者:Serendipitous33 来源: eefocus关键字:msp430  AWM3300  ad采样 手机看文章 扫描二维码
随时随地手机看文章

属于msp430的ad采样的应用。由于项目需要,在中断中对AWM3300模拟输入做了阈值检测。一般使用ad采样时,不需要在中断中做此处理。


使用器件型号:msp430F169/msp430F149,AWM3300@honeywell

典型应用电路:具体看AWM3300使用手册


#include "msp430x16x.h"

#include"AWM.h"

//标注CO2的代码与AWM3300无关

double CO2_o,ADC_CO2;//CO2


double ADC_Vol_speed=0,sum,ADC_temp;

int i,gas_rate;


double gas_flow_rate(double voltage)

{

  if(voltage > VOL_SP800)                                                                                                                                            

    return (800 + (voltage - VOL_SP800)*200/(VOL_SP1000 - VOL_SP800));

  if(voltage > VOL_SP700)

    return (700 + (voltage - VOL_SP700)*100/(VOL_SP800 - VOL_SP700));

  if(voltage > VOL_SP500)

    return (500 + (voltage - VOL_SP500)*200/(VOL_SP700 - VOL_SP500));

  if(voltage > VOL_SP400)

    return (400 + (voltage - VOL_SP400)*100/(VOL_SP500 - VOL_SP400));

  if(voltage > VOL_SP300)

    return (300 + (voltage - VOL_SP300)*100/(VOL_SP400 - VOL_SP300));

  if(voltage > VOL_SP200)

    return (200 + (voltage - VOL_SP200)*100/(VOL_SP300 - VOL_SP200));

  if(voltage > VOL_SP100)

    return (100 + (voltage - VOL_SP100)*100/(VOL_SP200 - VOL_SP100));

  if (voltage > VOL_SP0)

    return (voltage - VOL_SP0)*100/(VOL_SP100 - VOL_SP0);

else

return 0;

}

void AWM3300_init(void)

{

  WDTCTL=WDTPW+WDTHOLD;

  P6SEL|=BIT0;//P6.0模拟ADC输入(上电后默认0为输入)

  ADC12CTL0 &=~ ENC;

  ADC12CTL0=SHT0_2+ADC12ON;//采样转换时间,默认参电1.5V

  ADC12CTL0|=REFON+REF2_5V;//参电选择2.5V

 // for ( i=0; i<0x3600; i++);

  ADC12CTL1=SHP;//选用采样定时器作为触发信号

  ADC12IE=BIT0;//使能1中断

  ADC12MCTL0=SREF_1;

  ADC12CTL0 |=ENC;//AD转换使能

}

int main(void)

{

  AWM3300_init();

  for(;;)

  {

    ADC12CTL0|=ADC12SC;//开始转换

    _BIS_SR(CPUOFF+GIE);

    if(ADC_Vol_speed!=0){

      gas_rate=(int)gas_flow_rate(ADC_Vol_speed*1000);

      ADC_Vol_speed=0;

    }

    

//    if(gas_rate!=0)

//    {

//     return 0;

//   }

  }

}


#pragma vector=ADC_VECTOR

__interrupt void ADC12_ISR(void)                                                          

{

  ADC_temp=(double)ADC12MEM0/(double)0xfff*2.5*2;

  if((double)ADC12MEM0>=2818){                    //ad:2818-->vol:3.44/2

    i++;

    sum+=(double)ADC12MEM0;

  }

  

  if(i>=19){

    ADC_Vol_speed=(sum/(double)0xfff)/20*2.5*2;

    sum=0;

    i=0;

  }

  ADC_CO2=(double)ADC12MEM0/(double)0xfff*2.5;//CO2

  CO2_o=ADC_CO2*5000.0/3.0;//CO2

//  ADC_Vol_speed=((double)ADC12MEM0/(double)0xfff)*2.5*2;

  //if(ADC12MEM0<0x7ff)//max:0xfff,half:0x7ff 小于1/2AVCC

  _BIC_SR_IRQ(CPUOFF);

}


关键字:msp430  AWM3300  ad采样 引用地址:在msp430上使用AWM3300

上一篇:MSP430之IAR map文件解析
下一篇:MSP432学习笔记:IAR的环境配置(官方demo程序的测试)

推荐阅读

1、学界|智能机器人:威斯康星大学的研究人员获得本田资助,建立“好奇心”数学模型本田研究所美国公司今天宣布了一项名为Curious Minded Machine 的新计划,该计划将设计一种机器人或系统,以人性化,好奇心驱动的方式不断学习。好奇的机器人将是终身学习者,无需任何额外的培训即可扩展他们的技能列表。华盛顿大学将领导三个团队中的一个,与研究所合...
“你觉得单车智能和车路协同哪个更有前景?”不久前,在北京举办的一场无人驾驶主题交流会上,主办方向现场的观众抛出了这个问题,并且要求现场观众进行在线投票。最终的结果是:单车智能:车路协同=5:35。现场的讨论嘉宾清华大学车辆学院院长杨殿阁老师评价,这是一个非常“中国式的答案”。的确,在中国,车路协同正在成为一条热闹的赛道。“路和车逐...
联电遭美国司法部起诉,今(29)日以6,000万美元和解,法人坦言,联电的罚金金额与原本可能要支付的金额差距相当大,这起和解,可以说是「美国政府赢了面子、联电得到里子」,对联电来说是一件很好的事;台经院研究员刘佩真认为,美国政府的态度软化,突显出中美科技角力战中台厂的重要。刘佩真表示,美国先前很在意中国大陆与台湾在半导体技术上的合作,这...
目前首批谷歌 Pixel 6/Pro 已经陆续交到了消费者手中,但就和前几代 Pixel 会出现一些奇怪的问题一样,这一代也不例外。在拿到新手机后,就有用户反馈他们的手机屏幕出现了一些异常。  首先是 Reddit 用户 @HairyPorter23 发布了一段视频,视频显示在按下 Pixel 6 Pro 的电源键时,手机屏幕会出现横向的细纹,有时还会成片连接,...

史海拾趣

问答坊 | AI 解惑

什么是单片机?它跟PDA有什么区别?

我对单片机和PDA的了解几乎是零。 请各位大虾多多执教~!请各位大虾说的详细一点。 小弟多谢各位了! …

查看全部问答∨

嵌入式实时DSP图像监控系统的设计

嵌入式实时DSP图像监控系统的设计…

查看全部问答∨

Altera FPGA管脚弱上拉电阻的软件设置方法

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 Altera FPGA管脚弱上拉电阻的软件设置方法  …

查看全部问答∨

混合编程调用子程序疑问?

按照2812开发板的一个混和编程调用子程序做个实验 主程序如下: int add(int a,int b); int x=0,y=0,z=0; main() {            x=3; y=17;         while ( 1 )       &n ...…

查看全部问答∨

麻烦大家,初学者求解

#include        "config.h" #define                BEEPCON                0x00000080            ...…

查看全部问答∨

今天面试成功了 说说感想吧

呵呵 昨天接到面试通知     先前也有几个公司来电话  但我都放弃了   这次不知道什么原因我就跑去面试了   因为最近在学习STM32,本来没打算找工作的, 智联招聘系统给我投的简历,我就包着试试 ...…

查看全部问答∨

MSP-EXP430FR5739还是不错的

果断购入,和以前自己在TI买的触摸系列一起玩。看看这个数据储存速度能快多少。…

查看全部问答∨

求教mplab_ide

我写了一段程序,如下: #include <pic.h> unsigned char led[10]={                                0x3F,/*0*/    &nb ...…

查看全部问答∨

传统GPIB控制

GPIB接口是一种通用总线;它的主要用途是将一台或几台兼容GPIB的仪器连至PC机。GPIB接口能以100k/s至10MB/s的速度在几台不同设备之间一次交换一个字节的数据。GPIB结合了有效的握手协议后就成为测试与测量系统的首选通信方法。在效率很高的GPIB总 ...…

查看全部问答∨

GPIO口设置为output的时候有pull up pull down的选项吗?

rt, 我看drvtool里面好像只有inpull en选项,是不是gpio设置为outpu的时候就没有pull了呀?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved