IEEE 754 floating nummers van Visual Basic naar PIC microcont

M

mabusoe

Guest
Ik probeer het verzenden van een floating point getal uit het VB aan mijn C programma runing op 16F876.CI in de IEE754 omgezet naar een 4byte array, maar de Visual Basic heeft niet dezelfde functies (UNIE) is er een oplossing om floating point getal in byte-formaat, dat is beter?

Mabusoe

 
Is VB hebben pointers?Ik denk dat ja.Dan probeert te converteren
dit

float a;

char A1, A2, A3, A4;

a1 =* (char *) &a;
a2 =* ((char *) & a 1);
a3 =* ((char *) & een 2);
a4 =* ((char *) & a 3);

Opgesteld voor little endian cpu a1 zal bevatten laagste bits van mantissa en
a4 mantissa teken 7 MSB van bevooroordeelde exponent.

KEF

 
Dit is wat ik dacht voor VB:private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst als elke, pSrc als elke, ByVal ByteLen As Long)

Private Sub SingleToIEEE754 ()

Afm bBytes (0 tot 3) As Byte
Afm rMyNumber als single
Dim i As Integer

rMyNumber = 333,7
Bel CopyMemory (bBytes (0), rMyNumber, 4)

Debug.Print Hex $ (bBytes (3)); ""; Hex $ (bBytes (2)); ""; Hex $ (bBytes (1)); ""; Hex $ (bBytes (0))
End Sub

 
Dit is voor C:

unie FloatToChar
(
dubbele fr / / 4 bytes lang als een 32 bits.
unsigned char br [4]; / / 4 bytes als 4 tekens
);

unie FloatToChar y;Zeer handig, gelukkig VB en de C-compiler voor de microcontroller gebruik maken van hetzelfde model voor de 32bit floating point getallen

 

Welcome to EDABoard.com

Sponsor

Back
Top