在 Contiki 中 CPU 不更改为 LPM 模式时计算功耗
Calclulate Power consumption when CPU don't change to LPM Mode in Contiki
我需要计算 CPU 的功耗。根据这个公式。
功率(mW) = cpu * 1.8 / 次。
其中时间是 cpu + lpm 的总和。
我需要在某些进程的开始和结束时进行测量,但是经过的时间太短了,并且cpu不要更改为 lpm 模式,如下一个值所示powertrace_print().
all_cpu all_lpm all_transmit all_listen
116443 1514881 148 1531616
17268 1514881 148 1532440
计算 cpu 的功耗我得到 1.8 mW(这正是 CPU 在活动模式下的电流消耗值)。
我的问题是,这种情况下如何计算功耗?
如果 MCU 没有进入 LPM,那么它会一直处于活动模式,因此您得到的 1.8 mW 结果看起来是正确的。
也许您想问点不同的问题?如果要测量执行特定代码块所需的时间,可以在块的开头和结尾添加 RTIMER_NOW()
调用。
RTIMER_NOW
的时间分辨率对于短时操作来说可能太粗糙了。您可以为此使用更高频率的计时器,具体取决于您的平台,例如如果您正在为基于 msp430 的传感器节点进行编译,请阅读 TBR
寄存器的计时。
我需要计算 CPU 的功耗。根据这个公式。
功率(mW) = cpu * 1.8 / 次。
其中时间是 cpu + lpm 的总和。
我需要在某些进程的开始和结束时进行测量,但是经过的时间太短了,并且cpu不要更改为 lpm 模式,如下一个值所示powertrace_print().
all_cpu all_lpm all_transmit all_listen 116443 1514881 148 1531616 17268 1514881 148 1532440
计算 cpu 的功耗我得到 1.8 mW(这正是 CPU 在活动模式下的电流消耗值)。
我的问题是,这种情况下如何计算功耗?
如果 MCU 没有进入 LPM,那么它会一直处于活动模式,因此您得到的 1.8 mW 结果看起来是正确的。
也许您想问点不同的问题?如果要测量执行特定代码块所需的时间,可以在块的开头和结尾添加 RTIMER_NOW()
调用。
RTIMER_NOW
的时间分辨率对于短时操作来说可能太粗糙了。您可以为此使用更高频率的计时器,具体取决于您的平台,例如如果您正在为基于 msp430 的传感器节点进行编译,请阅读 TBR
寄存器的计时。