430的捕获源选择有两种,CCIS_A ,CCIS_B,在F149的书中我看介绍的是A是内部源,B是外部源。但是在F5529的书本中并没有做详细的区分,只有一句话“捕获输入CCIxA和CCIxB可连接外部引脚或内部信号,这需要通过CCIS控制位进行配置”,在捕获/比较控制寄存器中CCIS位默认的是CCIxA。
在我使用捕获模式的过程中,书上有一个例程:
P1DIR|=BIT0;
P1SEL|=BIT0; P1.0选择ACLK输出;
P2DIR&=~BIT0;
P2SEL|=BIT0; P2.0与P1.0相连,配置为定时器捕获输入;
TA1CTL=TASSEL_2+MC_2+TACLR; TA1主时钟SMCLK,连续计数模式,清除TAR;
TA1CCTL1=CM0+SCS+CAP+CCIE; CCR1工作于捕获模式,同步捕获,上升沿触发,中断使能;
_ _BIS_SR_register(LPM0_bits+GIE);
中断程序我就不写了,因为进不去中断。用示波器检测发现P1.0有正确的ACLK输出,默认的ACLK是XT1CLK,32kHz;计数时钟选择的是SMCLK=DCOCLKDIV;
然后对比另一个我自己写的程序:
P2DIR =BIT2;
P2SEL |=BIT2;
P2SEL |=BIT3;
UCSCTL4 = UCSCTL4&(~(SELS_7|SELA_7))|SELS_1|SELA_3;
TA2CTL=TASSEL_1+MC_2;
TA2CCTL0=CM_1+CCIS_0+SCS+CAP+CCIE;
_BIS_SR(LPM0_bits+GIE);
这个程序中,我将P2.2输出SMCLK=VLOCLK,P2.3设置为CCI0A捕获源;计数时钟选择ACLK=DCOCLK;在这种配置下,TA2能正确捕获SMCLK=VLOCLK。
这两个程序时钟配置本身应该是不会影响捕获的,只是区别在于P1与P2的输出。因此我在疑惑,是否是CCIS捕获源导致的无法捕获,进不去中断?请教一下大家。
此帖出自
小平头技术问答
一周热门 更多>