msp430g2553用P2口捕获的程序怎么写?

2019-03-24 13:29发布

P2.0/ 通用型数字I/O 引脚
8 10 9 I/O
TA1.0 Timer1_A,捕获:CCI0A 输入,比较:Out0 输出

这个是数据手册上写的,要用这个捕获的话,程序怎么写呢?? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
elulis
1楼-- · 2019-03-24 18:23
P2.4捕获的代码,刚一个朋友发问的代码改了改,调试能用。不明白的寄存器建议看看UserGuide。赶去公司吃午饭啦,有问题PM,回聊

#include <msp430g2553.h>

volatile unsigned int capture_value = 0;

void main() {
    WDTCTL = WDTPW + WDTHOLD;
    BCSCTL1 = CALBC1_16MHZ;
    DCOCTL = CALDCO_16MHZ;

    P2DIR &= ~BIT4; //P2.4捕获
    P2SEL |= BIT4;
    TA1CTL = TASSEL_1 + MC_2 + TACLR; //ACLK,Continous mode
    TA1CCTL2 = CCIE + CM_2 + CCIS_0 + CAP + SCS; //neg. edge,enabled interrupt,CCIxA,capture mode,

    while (1) {
        _BIS_SR(LPM3+ GIE);
    }

}

#pragma vector = TIMER1_A1_VECTOR
__interrupt void TA1_TAISR(void) {
    if (TA1CCTL2 & CCIFG) {
        TA1CCTL2 &= ~CCIFG;
        capture_value = TA1CCR2;
    }
}

[ 本帖最后由 elulis 于 2012-8-6 11:19 编辑 ]
baokeyu
2楼-- · 2019-03-24 18:59
 精彩回答 2  元偷偷看……
benni
3楼-- · 2019-03-24 22:48
我运行你的程序,在调试下用watch看,怎么TA1CCR2和capture_value 都是0,没有变化的?
罗曼帝客
4楼-- · 2019-03-25 00:09
我有个问题,就是信号源输入端口设为P2.4,那个CCIXA是干嘛的,他们俩有啥联系啊,菜鸟求解释!!
elulis
5楼-- · 2019-03-25 05:12
 精彩回答 2  元偷偷看……
elulis
6楼-- · 2019-03-25 05:44
一个CCR模块工作在捕获模式的输入信号源可以有多个,具体捕获哪个通过CCIx来选择。比如对于CCR2,经常有CCI2A、CCI2B等源。

一周热门 更多>

相关问题

    相关文章