1 理论分析
1.1 CC2530 睡眠定时器简介
睡眠定时器用于设置系统进入和退出低功耗睡眠模式之间的周期。睡眠定时器还用于当进入低功耗睡眠模式时,维持定时器 2 的定时。
睡眠定时器的主要功能如下:
24 位的定时器正计数器,运行在 32kHz 的时钟频率
24 位的比较器,具有中断和 DMA 触发功能
24 位捕获
1、概述
睡眠定时器是一个 24 位的定时器,运行在一个 32kHz 的时钟频率(可以是 RCOSC 或 XOSC)上。定时器在复位之后立即启动,如果没有中断就继续运行。定时器的当前值可以从 SFR 寄存器 ST2:ST1:ST0 中读取。
2、定时器比较
当定时器的值等于 24 位比较器的值,就发生一次定时器比较。通过写入寄存器 ST2:ST1:ST0 来设置比较值。当 STLOAD.LDRDY 是 1 写入 ST0 发起加载新的比较值,即写入 ST2、ST1 和 ST0 寄存器的最新的值。
加载期间 STLOAD.LDRDY 是 0,软件不能开始一个新的加载,直到 STLOAD.LDRDY 回到 1。读 ST0 将捕获 24 位计数器的当前值。因此,ST0 寄存器必须在 ST1和 ST2 之前读,以捕获一个正确的睡眠定时器计数值。当发生一个定时器比较,中断标志 STIF 被设置。每次系统时钟,当前定时器值就被更新。因此,当从 PM1/2/3(这期间系统时钟关闭)返回,如果尚未在