令人悲摧的Atmega16A的数学运算

2019-03-24 20:22发布

      在Atmega16A单片机程序当中(使用的是cvavr编程),由给定的参数i_Fade_time_temp = 7,根据此参数来计算其对应的计算值i_count,计算公式如下: i_count = ceil(0.2 * (506/ sqrt(pow(2,i_Fade_time_temp)))), 然而在程序运行的过程当中,最终的运行效果并不是预期中的效果。
     由于上式的计算结果为i_count = 9,我直接将i_count赋值为9,再来运行程序,此时的运行效果才是预期中的效果。难道atmega16中的数学运算就这么的不靠谱?各位大神请支支招,这种问题怎么处理呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。