【MSP430】捕获模式测量信号占空比

代码来自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 v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值