konverze typu XC32
Libor Konečný
support na mikrovlny.cz
Sobota Březen 19 21:24:44 CET 2022
Kde se to tam vezme to taky nechapu.
sizeof WORD je 2.
vyresil jsem to salamounsky.
pretypoval jsem na DWORD a provedl & 0xFFFF a uz to funguje korektne.
LK
Dne 19.03.2022 v 21:16 Miroslav Mraz napsal(a):
> Všimněte si, že 84542584 je 0x050A0478 a tedy spodní 2 byte souhlasí.
> Kde se tam vezme to 0x050A navrchu je otázka. Zkusil bych něco jako
> static_assert (sizeof (WORD) == 2, "error") C++ compile-time nebo v
> čistém C-čku assert (sizeof (WORD) == 2) runtime a podle toho zkoušel
> dál. XC32 neznám.
>
> Mrazík
>
> Dne 19. 03. 22 v 20:18 Libor Konečný napsal(a):
>> Zdravim fachmany na C pod XC32.
>>
>> Resim problem, ktery se mi zda jednoduchy, ale vysledkem je nesmyslna
>> hodnota.
>>
>>
>> mam
>>
>> WORD a;
>>
>> float tf;
>>
>> hlavni program
>>
>> a=0x0478; coz je dec 1144 (ale ta hodnota se meni v case, tady je
>> fixni jen pro naz)
>>
>> tf=(float)a;
>>
>> tak vysledkem print je 84542584.0
>>
>> kdyz tam dam natvrdo tf=1144; pak mi to pri tisku vrati spravne 1144.0
>>
>> Nechapu
>>
>> Muze mi nekdo prosim poradit jak se to ma spravne pretypovat, aby mi
>> print tiskl spravnou hodnotu 1144.0?
>>
>> Dekuji moc
>>
>> Libor
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list