关于实时时钟的初步认识
这次的项目,本来是个小项目,可是由于是使用手持设备,需要考虑低功耗和待机时间,再加上老板的“恶意”随意添加什么定时提醒功能,导致这个项目正在逐步复杂化。
因为需要单片机时刻处于休眠状态(这样最省电),但是又要能够实现定时报警,是不是很矛盾呢?可是终于还是被我想到了办法,实在是机灵啊,佩服自己。
方法是:有键盘操作的情况下,系统处于正常工作状态,一旦无键盘操作时间达到3分钟(可以随意定义),系统自动进入休眠状态!使用外中断INT0与Enter建复用,可以长按达到3秒就唤醒!
如何实现休眠状态的定时唤醒呢?使用时钟芯片PCF8563的INT中断,定时器倒计数器达到0时,产生一次中断,在该中断断中判断定时时间是否到达,没有,就重新赋值给倒计数定时器,再次进入休眠,如此直到达到定时时间,启动提醒报警!
这里,PCF8563的INT连接到单片机的INT0,在这个中断中,需要判断是键盘唤醒还是时钟唤醒,然后再执行相应功能。
另外,还可以使用PCF8563的报警功能,直接达到定时时间报警,从而唤醒单片机。具体使用哪种方式,需要实验后确定!
还有,定时时长,由红外发送完成进行计算并写入PCF8563;如果没有红外发送过程,系统待机3分钟后自动进入休眠模式,且不设置PCF8563!
因为需要单片机时刻处于休眠状态(这样最省电),但是又要能够实现定时报警,是不是很矛盾呢?可是终于还是被我想到了办法,实在是机灵啊,佩服自己。
方法是:有键盘操作的情况下,系统处于正常工作状态,一旦无键盘操作时间达到3分钟(可以随意定义),系统自动进入休眠状态!使用外中断INT0与Enter建复用,可以长按达到3秒就唤醒!
如何实现休眠状态的定时唤醒呢?使用时钟芯片PCF8563的INT中断,定时器倒计数器达到0时,产生一次中断,在该中断断中判断定时时间是否到达,没有,就重新赋值给倒计数定时器,再次进入休眠,如此直到达到定时时间,启动提醒报警!
这里,PCF8563的INT连接到单片机的INT0,在这个中断中,需要判断是键盘唤醒还是时钟唤醒,然后再执行相应功能。
另外,还可以使用PCF8563的报警功能,直接达到定时时间报警,从而唤醒单片机。具体使用哪种方式,需要实验后确定!
还有,定时时长,由红外发送完成进行计算并写入PCF8563;如果没有红外发送过程,系统待机3分钟后自动进入休眠模式,且不设置PCF8563!