就拿这个例子来说。这个例子是本论坛一位前辈发的TB捕获的实例
#include<msp430x14x.h> unsigned int width[10]={0,0,0,0,0,0,0,0,0,0}; unsigned int i=0;
void main()
{ WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
P4SEL|=BIT0; //P4.0作为捕获模块功能的输入端输入方波
//-------开晶振XT2---------
BCSCTL1&=~XT2OFF; //打开XT2振荡器 do { IFG1 &= ~OFIFG; // 清除振荡器失效标志 for (i=256;i>0;i--); // 延时,等待XT2起振 } while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
BCSCTL2 =SELM_2+SELS; //选择MCLK=SMCLK为XT2
//-----------------------------
TBCCTL0&=~(CCIS1+CCIS0); // 捕获源为P4.0,即CCI0A(也是CCI0B) TBCCTL0|=CM_2+SCS+CAP; //下降沿捕获,同步捕获,工作在捕获模式 TBCCTL0|=CCIE; //允许捕获比较模块提出中断请求 TBCTL|=ID_3;
(后面的省略)
[SIZE=6]我的疑问为:
一句“P4SEL|=BIT0;”,一句“TBCCTL0&=~(CCIS1+CCIS0);”,这就默认了CCIOA连接到P4.0了?我要是前面再多写一句“P4SEL|=BIT1;”,那这时候P4.0与P4.1哪个是CCIOA呢?[/SIZE] |