贴出代码求解释(简单17行代码)

2019-03-24 15:42发布

小弟自学了几天msp,打算用P2.1输出方波,再利用P1.1的外围模块功能,捕获源CCI0A来捕获上升沿进入中断,LED灯作为进入中断的指示!可不知道是中断理解不够还是什么原因,led灯没亮,万用表刚好坏了,测不了P2.1的高低电平,希望有心人能指出代码错误之处!:carnation:

#include<msp430x26x.h>
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;//关闭看门狗定时器
  TACTL=TASSEL_1+MC_2;//时钟源选择ACLK,连续计数模式  
  CCTL0=CM_1+SCS+CCIS_0+CAP+CCIE;//上升沿捕获,同步捕获,P1.1为捕获源,中断使能开
  _EINT();//总中断开
  _BIS_SR(LPM0_bits+GIE);//选择LPM0模式
  P1SEL |=BIT1;//P1.1选择外围功能,捕获模式下为CCI0A入口
  P2DIR |=BIT1;//P2.1为输出方向
  for(;;)
  {P2OUT|=BIT1;
   P2OUT ^= BIT1;
  }//无限循环,使P2.1输出高低电平

}
//利用P2.1输出的方波,让P1.1捕捉上升沿,捕捉到上升沿后进入中断
//P7.7外围模块为Led,进入中断后Led会有四盏灯亮的
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0(void)
{
  P7DIR=0X0F;
  P7OUT=0X0F;
  
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
3g465
2019-03-25 00:42
< :TI_MSP430_内容页_SA7 --> #include
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗定时器
TACTL=TASSEL_1+MC_2;//时钟源选择ACLK,连续计数模式
CCTL0=CM_1+SCS+CCIS_0+CAP+CCIE;//上升沿捕获,同步捕获,P1.1为捕获源,中断使能开
_EINT();//总中断开
_BIS_SR(LPM0_bits+GIE);//选择LPM0模式
//下面的语句不会执行
P1SEL |=BIT1;//P1.1选择外围功能,捕获模式下为CCI0A入口
P2DIR |=BIT1;//P2.1为输出方向
for(;;)
{P2OUT|=BIT1;
P2OUT ^= BIT1;
}//无限循环,使P2.1输出高低电平

---------
LZ你好,430在进入低功耗模式后,CPU将停止工作,下面的语句都不会执行的。

一周热门 更多>

相关问题

    相关文章