pic单片机,键盘控制,休眠唤醒后,五分钟内无任何操作,则又进入休眠状态,程序怎么写啊?
1个回答
展开全部
你可以启动一个定时器,如每隔一定时间中断,如100ms中断一次,用一个寄存器如TIME来累计中断的次数,显然5分钟需中断3000次。
每次按键中断,程序让TIME清0。因此,只有在5分钟内都没按键,TIME才有可能达到3000。只有当TIME值大于3000时才让单片机进入休眠状态,即在定时器中断时,如果TIME的值超过3000就进入休眠。
每次按键中断,程序让TIME清0。因此,只有在5分钟内都没按键,TIME才有可能达到3000。只有当TIME值大于3000时才让单片机进入休眠状态,即在定时器中断时,如果TIME的值超过3000就进入休眠。
更多追问追答
追问
因为涉及到功耗,所以单片机必须休眠。单片机还要接收发送数据,串口也中断唤醒。不知道这个sleep()函数该放在什么地方。
追答
这个得看你自己要让它什么时候休眠了,如果以按键的时间为标准,则要在定时器中断的地方,如果累计次数到了,让它休眠。但串口方面的,接收到数据立处理后即休眠,而发送数据,不知你是何时发送的?原则上发完也进入休眠,但要注意,必须是真的发完,而不是把数据放到发送缓冲区!!
总之,想节省功耗,这个sleep你自己想放在哪合适,我不知道你的整个程序过程,只能大概说这些了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询