conversion valeur hexadécimal
bonjour a tous ,
attention je suis débutant sans expérience , ne vous offusquer pas par mes réponses
logiciel Delphi 7
sauriez vous me dire comment je peut retourné une valeur hexadécimal par poids
exemple edit7.text' 0D8000' ; en edit8.text 00800D;
voici le code que j'ai tenter d'utilisé mais je retourne mes valeur
0D8000 en 0008D0 ?
ai fait de nombreuse recherche sans succès, il est vrai que je ne sais pas trop dans quel direction chercher
je fait donc appel a votre savoir
cordialement
voici ce que j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| //-------------------------------------------------------------------------------------pour la fonction je n'ai pas trouver juste une procédure
procedure ReverseBytes(Source, Dest: Pointer; Size: Integer);
var
BA: TByteArray;
s: string;
begin
// Length(BA, 4); // ici message d'erreur
// BA[0] := 65; //
// BA[1] := $41; //
// BA[2] := 1000001; // ceux la ne fonctionne pas
// BA[0] := ord('A'); //
s := ByteArrayToHexString(BA); // 41414141 //
s := ByteArrayToHexString(BA ,' '); // 41 41 41 41// je devrai les espacé mais cela ne marche pas et peut être pas besoin nom plus ?
Dest := PByte( NativeUInt(Dest) + Size - 1);
while (Size > 0) do
begin
PByte(Dest)^ := PByte(Source)^; //
Inc(PByte(Source)); // ici je retourne bien mais tout les chiffre et lettre hexadécimal
Dec(PByte(Dest)); // 0D8000 en 0008D0 ? au lieu de """ 00 80 0d "" ou """ 00800D """
Dec(Size); //
end;
end;
//--------------------------------------------------------------------------------------- ici un speedbutton de test
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
s: AnsiString;
P: Pointer;
begin
s := #0 + edit7.Text;
GetMem(P, Length(s));
ReverseBytes(Pointer(s),P, Length(s)); // je pense qu'il me manque le contrôle des poids par 2 caractère
ShowMessage(PAnsiChar(p)); // esrevertset
FreeMem(P);
end; |
conversion micro controleur
bonjour rMist2024
oui vous avez raison mais j'ai utilisé la conversion bintohex car j'ai tout d'abord convertie en binaire de faon a pouvoir ajouté 1 octet a la fin
j'ai également ajouté une conversion avec virgule sa n'as pas été simple mai ouff j'ai enfin réussi
car un décalage de 800 khz est trop importante
il m'a fallu collé au plus prêt de la valeur a injecté dans mon microcontrôleur pour être sur la bonne fréquence d'utilisation
actuellement je suis a environs 30 Hz de ma fréquence central ce qui est assez confortable sa fait un poil de grave en plus
mais pas gênant en FM
cordialement