[AVR单片机] 在avr studio6.1下面sprintf函数应用

[复制链接]
 楼主| qq4988 发表于 2014-8-19 15:15 | 显示全部楼层 |阅读模式
就下面这几句程序来说,tt应该等于多少?按理论来说   tt=3;但是实际上(烧进单片机后)为   15,这是为什么???????
       char  aa[10];
       uint16 tt=0;       
       sprintf(aa,"%1.3lf",3.141592);
       tt = aa[0]-0x30;

huangxz 发表于 2014-8-22 09:05 | 显示全部楼层
很简单,这是因为avr的架构决定你的编译结果满足你的要求,avr不是内存统一的架构,所以你的常数寻址出错了
 楼主| qq4988 发表于 2014-8-22 09:41 | 显示全部楼层
huangxz 发表于 2014-8-22 09:05
很简单,这是因为avr的架构决定你的编译结果满足你的要求,avr不是内存统一的架构,所以你的常数寻址出错了 ...

那就是说,AVR不支持这个函数了?
huangxz 发表于 2014-8-22 11:27 | 显示全部楼层
qq4988 发表于 2014-8-22 09:41
那就是说,AVR不支持这个函数了?

支持,只是你的使用方式不对啊
 楼主| qq4988 发表于 2014-8-22 12:15 | 显示全部楼层
huangxz 发表于 2014-8-22 11:27
支持,只是你的使用方式不对啊

请指点,应该如何使用
huangxz 发表于 2014-8-22 17:07 | 显示全部楼层
本帖最后由 huangxz 于 2014-8-22 17:10 编辑
qq4988 发表于 2014-8-22 12:15
请指点,应该如何使用

# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| qq4988 发表于 2014-8-22 19:52 | 显示全部楼层
huangxz 发表于 2014-8-22 17:07
# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf  ...

谢谢你啊
chiyoohui 发表于 2015-8-11 09:28 | 显示全部楼层
huangxz 发表于 2014-8-22 17:07
# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf  ...

请教下,这个该怎么设置?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

781

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部