历史上的今天
返回首页

历史上的今天

今天是:2025年02月25日(星期二)

正在发生

2020年02月25日 | 【MSP430】捕获模式测量信号占空比

2020-02-25 来源:eefocus

代码来自2016北斗杯,用于测量空气pm2.5,该传感器通过测量信号的占空比估计颗粒浓度


(1)TimerB设置,工作在捕获模式:


void TimerB_Init(){

  TBCCTL0&=~(CCIS1+CCIS0);            // 捕获源为P4.0,即CCI0A(也是CCI0B) 

  TBCCTL0|=CM_2+SCS+CAP;              //下降沿捕获,同步捕获,工作在捕获模式 

  TBCCTL0|=CCIE;                      //允许捕获比较模块提出中断请求 

  TBCTL|=ID_3; 

  TBCTL|=TBSSEL_2;                    //选择时钟MCLK 

  TBCTL|=TBCLR;                       //定时器清零, 

  //定时器开始计数(连续计数模式0~0xFFFF) 

  TBCTL|=MC_2; 

  _EINT(); 

}


(2)定时器开关:

void TimerBopen(void){

  TBCCTL0|=CCIE;                      //允许捕获比较模块提出中断请求

  TBCTL |= TBIE;

}

 

 

void TimerBclose(void){

  TBCTL &= ~TBIE;

  TBCCTL0&=~CCIE;                     //禁止捕获比较模块提出中断请求

}


(3)中断

用到两种中断:下降沿/上升沿中断、计数器溢出中断


实现在单位时间内测量低电平的时间,从而计算占空比:


//―――――定时器TB CCR0的中断:用于检测脉冲上升与下降沿―――― 

#pragma vector=TIMERB0_VECTOR        

__interrupt void TimerB0(void) 

  if(TBCCTL0&CM1){                    //捕获到下降沿 

    P6OUT |=BIT0;

       

    TBCTL|=TBCLR; 

    TBCCTL0=(TBCCTL0&(~CM1))|CM0;     //改为上升沿捕获:CM1置零,CM0置一 

  }else if(TBCCTL0&CM0){                    //捕获到上升沿 

    P6OUT &=~(BIT0);

    widthB+=TBCCR0;                    //记录下结束时间 

    TBCCTL0=(TBCCTL0&(~CM0))|CM1;     //改为下降沿捕获:CM0置零,CM1置一     

  } 

 

 

//―――――定时器TB计数器溢出中断:用于检测脉冲上升与下降沿――――

#pragma vector=TIMERB1_VECTOR

__interrupt void Timer_B(void)

{

 

   switch( TBIV ){

    case 2: break;                   //CCR1不使用

    case 4: break;                   //CCR2不使用

    case 14: numB++;       //溢出

    break;

  }

  if(numB>=15){

    numB=0;

    secB++;

  }

  if(secB>=10){                        //设定时间后需要改变

 //   calculate();

    TimerBclose();

    return;

    

    //设置为传送模式

  }

}

推荐阅读

史海拾趣

Guerrilla RF公司的发展小趣事
避免灰尘和异物进入硬盘内部,定期清理硬盘周围的环境。
Eastron Corp公司的发展小趣事

Eastron Corp一直重视人才的培养和引进。公司建立了完善的人才培养和激励机制,鼓励员工不断学习和创新。同时,Eastron还积极引进国内外优秀人才,为公司的发展注入新的活力。正是凭借一支高素质、专业化的团队,Eastron在电子行业中不断取得新的突破。

Bellin公司的发展小趣事

在电子产品同质化日益严重的今天,Eastron Corp深知品质对于品牌的重要性。公司严格把控产品质量,从原材料采购到生产过程,再到成品检验,每一个环节都经过严格把关。此外,Eastron还建立了完善的售后服务体系,为客户提供全方位的服务支持。正是凭借出色的品质和服务,Eastron赢得了客户的信赖和口碑。

Consolidated Wire公司的发展小趣事

面对不断变化的市场需求和技术趋势,Consolidated Wire公司始终保持创新精神。公司不断研发新产品、新技术,满足客户的多样化需求。同时,公司还注重与其他行业的合作与交流,通过跨界合作推动产品创新和技术升级。这种创新驱动的发展模式使得Consolidated Wire公司能够持续保持竞争优势,实现持续稳健的发展。

Bkc Semiconductors Inc公司的发展小趣事

随着全球环保意识的提高,Bkc积极响应绿色发展的号召。公司不仅加大了对环保技术和绿色生产的投入,还积极参与社会公益事业和环保活动。通过实际行动履行企业社会责任,Bkc不仅赢得了社会的尊重和支持,也为公司的可持续发展注入了新的动力。

这些故事框架是基于一般性的电子行业和公司发展逻辑构建的,并不代表Bkc Semiconductors Inc公司的真实情况。如果您需要更具体、更准确的信息,建议直接查阅该公司的官方网站、年报或相关新闻报道。

Anritsu公司的发展小趣事

Bkc深知人才是企业发展的核心动力。因此,公司高度重视研发团队的建设和人才培养。通过引进业内顶尖的技术人才和提供完善的培训机制,Bkc逐渐打造出一支技术实力雄厚的研发团队。这支团队不仅为公司带来了源源不断的技术创新,也为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

有用过转接卡的吗?pcmcia转串口 在超级终端中输入的字符混乱

使用的是华塑的pcmcia转串口卡,XP系统自带超级端连mini2440 波特率:115200 数据位:8 奇偶校验:无 停止位:1 数据流控制:无 在设置中的\"本地回显键入的字符\",没有勾选. 可以连上mini2440,之前刷的是\"缺省Linux系统\",在超级终端中能 ...…

查看全部问答>

在调AD的时候都要注意什么问题啊?

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 我是新手,最近调了个AD574,感觉时序都没问题,可出来的数就是不变。不知道AD这块还要注意点什么啊?  …

查看全部问答>

向大家请教一下!

#define TRANDATA_TOGSM_TIMES 0350h #define UP_3mA 0352h #define UP_10mA 035Eh ;这是一个6个字长的数组,放置峰值大于10mA的数量 ;该数组占据的地址空间为35E/360/362/364/366/368 #define Rain_Counter_Day 0400 ...…

查看全部问答>

生产厂家规范的-- LED驱动电源测试报告范例

replyreload += \',\' + 1365593;这份报告是基于一个8W LED驱动电源临时做的一个基本范例,是考虑有公司商业机密的问题,略作修改: 1.不对版权负责,只供参考. 2.不对内容负责,不做解释.每家公司各不相同,难于解释不同.敬请谅解. Timson,如果您要 ...…

查看全部问答>

[转贴]实施DDR 2 / mddr布局的tms320dm35x dmsoc 大家可以参考一下!很有用!!

摘要:         该tms320dm35x数字媒体系统芯片(dmsoc)装置。该方法来指定接口时序的DDR 2 / mddr接口是完全不同的,比以前的设备。         前一种方法指定计时装置在数据表规格 ...…

查看全部问答>

关于ISE中的约束语句

今天看到一个例子,该例子中用了下面这些语句 (* KEEP = \"TRUE\" *),貌似是用来防止wire型被综合掉 ?? (* INIT = \"0\" *),初始化一个寄存器的值为0 ?? (* ASYNC_REG = \"TRUE\" *)    ?? 请问这些语句是什么语句?有什么用 ...…

查看全部问答>

ad测量通过串口发出的程序,只能发出FF

我用AD采样,然后想通过串口发出,结果只能得到FF。大家帮我看看那里出现了问题,谢谢 #include  \"msp430g2553.h\" #define uchar unsigned char long temp; void uart_init(void) {         BCSCTL1 = CAL ...…

查看全部问答>

鍵盤A鍵和B鍵交替輸入效果

將鍵盤上A鍵和B鍵的4個接觸點伸延出來(因為是接觸按鍵,所以每個按鍵都有2個接觸點), 我想透過一組電子零件來接駁伸延出的4個接觸點, 啟動該製成品後在顯示螢幕上出現ABABABAB...連續按鍵的效果。 當然如果使用軟件來達成簡直是易如反掌,但我 ...…

查看全部问答>