hi In language C, how I can obtain each BYTE of a number floating point located in XDATA. Example: If number is -12.5 Address 0 1 2 3 Content 0xC1 0x48 0x00 0x00 How I can consent to each BYTE (0 1 2 3) and to keep it in a variable type char or to write each byte of the number in a port. Some technique exists as XBYTE or something like that.... Thank you,
I think it's similar to obtaining each BYTE of a number floating point located in inner DATA. Firstly make sure the address for each byte,and then pass it back.For example, mode = chCmdChannel; here,mode is a inner variable, chCmdChannel is a address variable locating in XDATA.
I think it's similar to obtaining each BYTE of a number floating point located in inner DATA. Firstly make sure the address for each byte,and then pass it back.For example, mode = chCmdChannel; here,mode is a inner variable, chCmdChannel is a address.
How about:
union fb { float f; unsigned char c[4]; }; union fb = 12.5;
First, read the section in the manual on data storage formats. That tells you how the individual bytes are laid-out within a larger data item. Then construct a union containing the float and an appropriate set of bytes. Or do it via abstact pointers. Remember that this is unlikely to be portable - if you wanted to move to another compiler, you'd have to read the section in the other compiler's manual on data storage formats and possibly re-construct your union.
View all questions in Keil forum