原创 用Freescale单片机编程遇到的奇怪问题

2011-1-20 10:38 2115 10 12 分类: 软件与OS

前两天,又有工程师报错搞不定。说用Freescale单片机出了莫名其妙的问题。大概说到用此单片机做计算,传感器输入数据,滤波后输出。奇怪的是滤波输出值为0后,不管输入为多少,输出总为0;

我开始初看了一下代码,没有什么问题啊。但结果真的就是上面描述的样子。没脾气,撸起袖子干吧。

环境描述:

单片机:Freescale的MC9S08QE

开发平台:Freescale CodeWarrior IDE V6.2

滤波大概的计算,简化下来,可认为是 a=(a+b)/2,b为传感器实时值。查来查去,好像这一句有问题。但实在想不出问题在哪里。于是,调吧!

开始很正常,但发现a小到一定值(如小于2^-32)时,问题来了。我发现a+b=a!我这才恍然大悟。

这个应该是Freescale编译器问题,浮点的加法运算,它好像始终以a为参考数进行移位计算,而这样会造成数据溢出错误的。

我将计算表达式改为a=(b+a)/2就避免了此问题(b为AD采样后转化成的浮点数)。更加验证我的猜想。

同样的代码,在Keil中编译就没有类似问题。

 

 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

飞言走笔 2011-1-12 11:56

经验之谈……

shaoziyang 2011-1-11 14:28

收藏!
相关推荐阅读
forrest 2012-02-09 22:58
评论:@上海唐辉电子有限公司18923481289 博客中提到的“值得借鉴的前辈创业经验”
有些和事实不符,但这样很好。...
forrest 2012-01-20 22:49
2012新年快到了
新年快到了,祝我的朋友和我自己,新年更进一步。...
forrest 2011-12-08 20:38
常用器件
ESD保护器件:WE05MF  SES5VT553-5, NZQA6V8AXV5T1G, NZQA6V2XV5T1G,MSMF05LC-P ,EMZ6.8ET2R,RSA6.1J4,PESD3V3...
forrest 2011-12-08 20:37
STM32 vs NUC120
比较 STM32和NUC120各自的特点(外设和速度) 只比较使用过的外部设备,如有不正确的地方请指正!谢谢          USART:                STM32 的U...
forrest 2011-11-20 10:55
PCB打样公司记录
1、深圳创新电路板有限公司 专业PCB快板打样,最低价50元起,我公司沉铜电镀采用全自动线生产,线路用干膜制程,确保产品精度和 产品品质的稳定性, 最小孔0.2MM 最小线0.1MM 10层以...
forrest 2011-11-09 15:34
TI展看新产品方向
1、DLP 2、容性触摸方案:BoosterPack 3、LED照明控制:C2000MCU 4、电机控制,PFC:Piccolo F28035 5、医疗:     消费类:血气...
EE直播间
更多
我要评论
2
10
关闭 站长推荐上一条 /3 下一条