导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:万分着急!请大家来帮忙!![adv2000]

 *第7225篇: C51编程:万分着急!请大家来帮忙!!

  
楼 主:adv2000 2002年12月24日14:31
 C51编程:万分着急!请大家来帮忙!!
C51编程中如何在外部存储器中利用地址存储浮点数,例如在双端口RAM中的0x0001处存储一
个浮点数如3.15,它占用4个字节空间?XBYTE[0x0001]=3.15,但在0x0001处存的是整数3。如
何解决该问题?谢谢了!!急用
  
2楼:johnblue 2002年12月24日17:23
 *(float*) (XBYTE+0x0001) = 3.15
  
3楼:adv2000 2002年12月26日15:47
 二次请教johnblue
johnblue兄好
    谢谢你的回复,我用你的方法把3.15存进双端口RAM中,没报错,但我如何从另一端口
取出该浮点数,float a; a=*(float*)(XBYTE+0x0001);没有反应,请赐教如何取数。谢谢
你的帮忙!
  
4楼:johnblue 2002年12月27日09:47
 It shall work
I dont know why your hardware does not run correct, and in my simulation on 
Keil C51 software emulator, the reading and writing are all well.
  
5楼:adv2000 2002年12月28日20:35
 继续请教
johnblue兄:
     你从另一端口取浮点数时,是否按照下面过程实现的,先定义一个浮点数a,然后用a=*
(float*)(XBYTE+0x0001)实现的吗?谢谢。
  
6楼:johnblue 2003年1月3日11:46
 yes
  
7楼:2shift 2002年12月24日20:56
 利用联合体也行,这样
union 
{ float f;
  xdata uchar a[4];
}
只要令f=3.15,然后将数组a的四个元素顺序存入0x0001,0002,0003,0004就行了

>>>>>>对该主题发表你的看法

本主题贴数7,分页: [第1页]


[上一篇主题]:单片机销售

[下一篇主题]:C51编程:中断为什么不执行