msp430g2553的红外接收问题

2019-03-24 11:04发布

现在要接收红外信号,将红外接收头的OUT引脚插到了P2.3,打算一遇到跳变就进入中断并计时,不知道程序怎么写了。单片机新手求指导,我的程序现成这样:


main(void)
{
    WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer
    P1DIR = BIT0;
    P1OUT = 0X01;
    int_IR();
}

//初始化Timer
void int_Timer()
{
        TACCTL1 |=CM_3+SCS+CAP+CCIE;//上下沿都触发捕捉,同步模式、使能中断
        TACTL |= TASSEL1+MC_2+ TACLR;//选择SMCLK时钟作为计数时钟源,连续计数模式
}

//有关端口初始化
void int_io()
{
        P2IFG &=~ BIT3;
        P2SEL |= BIT3;

}
//初始化红外相关资源
void int_IR()
{
         int_io();
         int_Timer();

}

//识别出红外信号后处理LED灯
void dealLED()
{

        int i;
        while(1){
                for(i=0;i<20000;i++){
                                P1OUT=0x01;
                        }
                for(i=0;i<20000;i++)
                {
                        P1OUT=0x00;
                }
        }
}

#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer_A(void)
{
         dealLED();

}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
shower.xu
2019-03-24 18:23
 精彩回答 2  元偷偷看……0人看过

一周热门 更多>

相关问题

    相关文章