STC8A8K64S4A12——掉电唤醒定时器应用,极大降低产品功耗

【背景】最近做低功耗项目,用到了一款STC的低成本,低功耗MCU,STC8A8K64S4A12,外设较丰富,主要是成本低,2-4元,且功耗很低,按官网介绍,掉电模式下<0.1uA,这种级别用于电池供电设备上太划算了。

STC8A8K64S4A12——掉电唤醒定时器应用,极大降低产品功耗_第1张图片

 【掉电唤醒定时器】:掉电模式下可以由外部中断唤醒,那么应用时可以设置掉电唤醒定时器睡眠时间->进入睡眠->醒后判断是否为自然唤醒或 外部中断等唤醒->根据唤醒原因发起不同动作。

判断唤醒原因依据:醒后读取WKTCH及WKTCL寄存器,若均为FF,则为自然唤醒,否则是被外部中断等唤醒(此时读出的值为睡眠时间)。

STC8A8K64S4A12——掉电唤醒定时器应用,极大降低产品功耗_第2张图片

 

STC8A8K64S4A12——掉电唤醒定时器应用,极大降低产品功耗_第3张图片

【掉电唤醒定时器设置源码】:其中32768仅是估计值,若获取准确频率值,可通过读取F8H ,F9H 内容获取出厂时记录的时钟频率。

void	SetWakeUp(u16 SetTime)
{
	SetTime = (u16)((32768UL * (u16)SetTime) / 16000);	  //计算计数次数
	if(SetTime > 0)	SetTime--;      
	WKTCL = (u8)SetTime;          
	WKTCH = (u8)(SetTime >> 8) | 0x80;  //赋值WKTCH寄存器并允许内部停机唤醒定时器
}

 

你可能感兴趣的:(嵌入式)