首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

msp430解决方案

2013-07-08 
msp430#include msp430g2553.hvoid init_port(void)void init_timer(void)void main(void){WDTCTLWDT

msp430
#include <msp430g2553.h>
void init_port(void);
void init_timer(void);
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
init_port();
init_timer();
_EINT();
while(1);
}


void init_port(void)
{
P1DIR=0xff;                 //将P1口所有管脚设为输出方式
P1SEL=0;                    //将P1口所有管脚设为一般I/O口
P2DIR=0x00;            //将P2.0口所有管脚设为输入方式
        P2SEL=0;                    //将P2口所有管脚设为一般I/O口
        P2IFG=0;                     //将中断寄存器清零
        P2IE=BIT0;                  //管脚P2.0使能中断
        P2IES &=~BIT0;               //上升沿产生中断

}

void init_timer(void)
{
TACTL=TASSEL_1+TACLR;            //选择ACLK(辅助时钟源),清除TAR
CCTL0=CCIE;                      //TACCR0中断允许
CCR0=32767;                      //时间间隔为1s
TACTL |=MC_1; //增计数器模式

}

#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= (BIT0+ BIT6);
}

想请教为什么灯不能闪,可是把
        P2DIR=0x00;                //将P2.0口所有管脚设为输入方式
        P2SEL=0;                    //将P2口所有管脚设为一般I/O口
        P2IFG=0;                     //将中断寄存器清零
        P2IE=BIT0;                  //管脚P2.0使能中断
        P2IES &=~BIT0;                      //上升沿产生中断
这段注释掉就可以正常闪,也就是不对P2口进行初始化就灯就闪。 msp430g2553
[解决办法]
  P2DIR=0x11;                //将P2.0口所有管脚设为输入方式
是不是 应该将P2设为输出;
[解决办法]
因为,你要注释掉的这段代码是外中断配置,你已经启用了

但是,你没有写中断服务

不知道你板子上有什么东西,可能触发了中断.由于没有中断服务

单片机跑飞了,不再正常执行程序,不停的在复位


[解决办法]
那从您给出的代码,没看出问题来...

另外,不闪的时候,程序是停在哪???
------解决方案--------------------


msp430解决方案

那不懂了,430我也用过,也用过外中断和定时器还有其它模块一起操作的

但是,不知道这个什么情况,解决来回来说一声

谢谢

热点排行