小弟自学了几天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;
}
此帖出自
小平头技术问答
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将停止工作,下面的语句都不会执行的。
一周热门 更多>