打印
[PIC®/AVR®/dsPIC®产品]

(10f322带程序)亮-闪-灭三模式led,上电程序陷入频闪模式死循环,求大神指导

[复制链接]
1133|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
黑夜落寞|  楼主 | 2015-8-7 23:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LED, se, IO, CAN, AN
前面的就省略。。主要是下面这部分,搞不清哪里出问题了,跳出频闪循环可恢复正常的模式切换
unsigned int key=0,mode=0;
        mode=EE_READ();
        while(1)
        {
                if(key==0)
                {
                        if(!PORTA0)
                        {
                                delay(1);
                                if(!PORTA0)
                                {
                                        key=1;
                                        mode++;
                                        if(mode>2)        mode=0;
                                        EE_ERASE();
                                        EE_WRITE(mode);
                                }
                        }
                }
                else
                {
                        if(PORTA0)
                        {
                                delay(1);
                                if(PORTA0)        key=0;
                        }
                }
                if(mode==0)        PORTA=0X0E;
                else if(mode==1)        PORTA=0X08;
                else
                {
                        if(TMR0>243)
                        {
                                TMR0=0;
                                PORTA=~PORTA;
                        }
                }
                if(PORTA0&&!mode)
                {
                       
                        delay(1);
                        if(PORTA0)
                        {
                                IOCIE=1;
                                IOCAN0=1;
                                SLEEP();
                                NOP();
                                IOCIE=0;
                        }
                       
                }
        }
}
沙发
黑夜落寞|  楼主 | 2015-8-7 23:31 | 只看该作者
这个是之前亮——灭双模式的程序,可以正常运行
unsigned int key=0,mode=0;
        mode=EE_READ();
        while(1)
        {
                if(key==0)
                {

                        if(PORTA0==0)
                        {
                                delay(2);
                                if(PORTA0==0)
                                {
                                        PORTA=0X08;
                                        mode++;
                                        if(mode>1)        mode=0;
                                    EE_ERASE();
                                        EE_WRITE(mode);
                                        key=1;

                                }
                        }
                }
                        
                {
                        if(PORTA0==1)
                        {
                                delay(2);
                                if(PORTA0==1)
                                {
                                        key=0;

                                }
                        }
                }

                if(PORTA0==1)
                {
                        if(mode==1)        PORTA=0X08;
                        if(mode==0)       
                        {
                        PORTA=0X0f;
/*                        IOCAN0=1;
                        IOCIE=1;
*/
                        WDTCON=0x0f;
                        SLEEP();
                        WDTCON=0x00;
                        NOP();

                        }
                }
        }
}

使用特权

评论回复
板凳
czghn1| | 2015-8-11 12:10 | 只看该作者
空间这么小还用C  厉害  

使用特权

评论回复
地板
liu0000feng| | 2015-8-14 17:30 | 只看该作者
你程序怎么这么麻烦?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝