使用 Code Composer Studio 进行 MSP430设计时 ,编译器向我发出警告,建议我不要使用浮点数学,因为浮点数学是处理器密集型的(或具有此种效果的东西)。 很抱歉-我没有确切的警告。
我很困惑,因为编译器似乎认为我想在运行期间使用浮点数学,我当然不想使用浮点数学。 但是,我确实有一些#defines 使用一些中间浮点值,这些值最终将被类型转换为整数值,以便在运行时使用,或者至少这是计划。 下面是定义。
#define XT_FREQ 10000000UL
#define core_reset_time (float)(0.000050)
#define MCLK_DIV 8UL
#define SMCLK_DIV 8UL
#define ACLK_DIV 256UL
#define MCLK_FREQ (间壁频率/ MCLK_DIV)
#define SMCLK_FREQ (间壁频率频率/ SMCLK_DIV)
#define ACLK_FREQ (间壁频率/ ACLK_DIV)
#define ACLK_period ((浮点) 1/(浮点) ACLK_FREQ)
#define SMCLK_Period ((浮点) 1/(浮点) SMCLK_FREQ)
#define TIMB1_core_reset_CCR0 (无符号短)(舍入(core_reset_time / SMCLK_period))
最终,我在运行时唯一感兴趣的值是 TIMB1_core_reset_CCR0。 这应计算出值63,以便在运行时使用。 浮点值在代码中的任何位置都不被引用。 如何强制编译器理解这不是使用浮点计算运行时间,而是一种用于计算整数常量以供运行时间使用的参数化方法?