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

亮-闪-灭三模式led,上电程序陷入频闪模式死循环,求指导

[复制链接]
624|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
黑夜落寞|  楼主 | 2015-8-9 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LED, se, IO, CAN, AN
前面的就省略。。主要是下面这部分,搞不清哪里出问题了,跳出频闪循环可恢复正常的模式切换(有时会自动亮起),用的是10f322
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-9 11:06 | 只看该作者
这个是之前亮——灭双模式的程序,可以正常运行
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();

                        }
                }
        }
}

使用特权

评论回复
板凳
黑夜落寞|  楼主 | 2015-8-9 11:20 | 只看该作者
刚出来实习,去了小厂,本来有个新来的工程师,后来受不了老板,干了一个星期直接走人了,后来也没招人。
所以只能让我去干,但我才刚接触PIC没多久,天天又加班到很晚,学习时间不够,又没同事可以交流。
老板天天来办公室催,星期一就要我搞出来,这两天都快累死了。

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝