在线情况
楼主
  • 头像
  • 级别
    • 积分30
    • 经验613
    • 文章57
    • 注册2011-01-31
    关于我的那个IO的问题,我再说得具体点吧
    就拿这个例子来说。这个例子是本论坛一位前辈发的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]
    [ 此贴最后由DC在2011-2-10 19:27:29编辑过 ]
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
    • 门派
    • 职务总版主
    • 声望+9
    • 财富5
    • 积分3065
    • 经验390701
    • 文章6744
    • 注册2006-03-07
    新年好:
    P4SEL|=BIT0这句是切换到其他复用功能;具体要查看这P40是用于什么样的功能来使用。由于P40是三种功能复用,比如IO、捕获输入、PWM输出。如果是捕获时则从此脚输入至TB,如果是输出则从TB输出PWM。
    P40、41都可以连接至CCOA信号,可是这P40是对应TB模块的TB0子模块,同样41是对应TB模块的TB1子模块的。这两都不是并联关系,不要误会。
    而TBCCTL0&=~(CCIS1+CCIS0);只是决某子模块中这年捕获信号来自那里。
    大概是这样,不懂的自己子细看看两份用户手册吧。
    [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
    Powered by LeadBBS 9.2 .
    Page created in 2.4058 seconds with 5 queries.