主题中讨论的其他器件: MSP430F67641
我们将 MSP430F67791微控制器用于电量计。 在我们的执行中,必须将能源分为出口和进口。 emswlib.h 库的实现中没有此类除法。 库本身已关闭。
之前使用的是 MSP430F67641微控制器、因此支持将能量分配到导入和导出中。 
请告诉我、我们如何有机会将有功和无功电能划分为进出口?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我们将 MSP430F67791微控制器用于电量计。 在我们的执行中,必须将能源分为出口和进口。 emswlib.h 库的实现中没有此类除法。 库本身已关闭。
之前使用的是 MSP430F67641微控制器、因此支持将能量分配到导入和导出中。 
请告诉我、我们如何有机会将有功和无功电能划分为进出口?
你好。
通过导入和导出、我的意思是将能量存储分为四个寄存器(Active+、Active-、Reactive +、Reactive -) 
因此、有功和无功电能不是根据绝对值而是根据符号值累加的。 
如果有功功率有+号、则累加有功电能+;如果有功功率有-号、则有功电能通过单独寄存器中的-号累加、 对于无功电能、它是相同的、因此电感能量和电容能量分别是累积的。 
下面是一张图片。 
是的、对于 F67641、我们使用了下面的旧驱动程序、也是旧驱动程序代码的一部分、在这里、您可以看到如何根据不同寄存器中的方向对累加的能量进行分频。 

#if defined(ACTIVE_ENERGY_SUPPORT)  ||  defined(TOTAL_ACTIVE_ENERGY_SUPPORT)
    APP_ACTIVE_ENERGY_IMPORTED,
    APP_ACTIVE_ENERGY_EXPORTED,
#endif
#if defined(REACTIVE_ENERGY_SUPPORT)  ||  defined(TOTAL_REACTIVE_ENERGY_SUPPORT)
    APP_REACTIVE_ENERGY_QUADRANT_I,
    APP_REACTIVE_ENERGY_QUADRANT_II,
    APP_REACTIVE_ENERGY_QUADRANT_III,
    APP_REACTIVE_ENERGY_QUADRANT_IV,
#endif
#if defined(ACTIVE_ENERGY_SUPPORT)
    *((uint64_t *) &tx16[1]) = energy_consumed[phx][APP_ACTIVE_ENERGY_IMPORTED];
    *((uint64_t *) &tx16[5]) = energy_consumed[phx][APP_ACTIVE_ENERGY_EXPORTED];
#else
#if defined(REACTIVE_ENERGY_SUPPORT)
    *((uint64_t *) &tx16[9]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_I];
    *((uint64_t *) &tx16[13]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_II];
    *((uint64_t *) &tx16[17]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_III];
    *((uint64_t *) &tx16[21]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_IV];
#else尊敬的 Dennis:
我明白了。 因此、您需要累加正能量和负能量 spready。
随附的文件将告诉您 EMlib 如何计算结果。 或许可以提供一些帮助。
e2e.ti.com/.../Energy-Library-Specifications-KV.docx-V5.pdf
由于 driverlib 对客户来说不是开源的、我认为您可以 在函数在 ADC ISR 中运行后对能耗结果进行一些比较。 然后 、您可以手动扩展正负结果。

伊斯天