www.kn34pc.com
https://kn34pc.com/forums/

float/double constant в HAL
https://kn34pc.com/forums/viewtopic.php?f=79&t=1214
Страница 1 от 1

Автор:  LZ2WSG [ 29 Дек 2024, 14:03 ]
Заглавие:  float/double constant в HAL

умножение по float/double константа, тест: :smt048
(калибровка на показания на честотомер)
Код за потвърждение:
uint32_t x = 1000000019;
x *= 0.99995054110188271487660581812017;          // 999950560
x = 1000000019;
x *= 0.99995054110188271487660581812017f;         // 999950528
x = 1000000019;
x *= (double)0.99995054110188271487660581812017;  // 999950560
// calculator - 999950560,10094299581237740077551

По подразбиране константа с десетична точка е в double :smt041

PS. за теста оптимизацията е изключена, иначе дебъгерът направо скача на последното изчисление.

Автор:  LZ2WSG [ 01 Яну 2025, 12:39 ]
Заглавие:  Re: float/double constant в HAL

С променлива пад стана по "сложния начин":
Код за потвърждение:
     double tmp = (double)fx[1];
     tmp *= 1.0002568380645957687422102408703;
     fx[1] = (uint32_t)tmp;

Липсва ми Arduino :wink .

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/