vb2002 发表于 2025-7-5 18:24:03

我这样问吧,希望大佬帮我一下. 流程图附上



流程图大概是这么个流程图了
代码部分, 在判定1秒内被开机唤醒那个地方不会写了.
是应该用p32 int0 来唤醒吗? 如果是用int0 来唤醒的话, 我是不是应该用个外部的下拉电阻或者电容之类的, 把电平拉低?





                        if(PCON&0x20){
                                diaodianflag=1;
                                PCON &= ~0x20;
                                WKTCL = 0xff;                               //设定掉电唤醒时钟约为1秒钟
                                WKTCH = 0x81;
                                Shutdown();
                                if(diaodianflag==0)mode++;
                               
                                SaveCounter();
        while((PCON & 0x20) != 0)      //复查掉电标志
        {
                                        PCON &= 0xDF;                //清除掉电标志
                                        _nop_();               
                                        _nop_();                //坐等掉电
        }
                        }


晓飛飛 发表于 2025-7-5 19:54:48

与其被代码困住死磕,不如说说要实现什么样的效果,也许有其他更合适的方案。
感觉你搞这个时间不短了,起码半年以上了。

vb2002 发表于 2025-7-5 20:26:16

晓飛飛 发表于 2025-7-5 19:54
与其被代码困住死磕,不如说说要实现什么样的效果,也许有其他更合适的方案。
感觉你搞这个时间不短了,起 ...

其实已经弄好了.
已经在鱼上面卖了一点了. 不过之前那个是属于电子开关的
现在这个机械的其实之前也弄好了.
但是现在我功能上面加不上去,, 就是缺失两次断电和两次以上断电的判定.

vb2002 发表于 2025-7-5 20:29:59

晓飛飛 发表于 2025-7-5 19:54
与其被代码困住死磕,不如说说要实现什么样的效果,也许有其他更合适的方案。
感觉你搞这个时间不短了,起 ...

我现在的思路核心 就是那个 掉电模式 1秒以后会被掉电唤醒定时器唤醒.
但是如果一秒以内怎么唤醒.. 只有一个机械开关.
    如果加上下拉, 那p32就一直 是低电平,可能进不了掉电模式, 或者进去就被唤醒了
如果加上电容(还没试)
页: [1]
查看完整版本: 我这样问吧,希望大佬帮我一下. 流程图附上