LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Вот так работает нормально:

int32_t tmp = (((int16_t)BYTE_SWAP(mpu6050_response[3])) * (int32_t)100);
temperature = tmp / 340 + 3653;

При том если приводить результат BYTE_SWAP к int32_t, то не работает.

Но блин... как может простое умножение int на float работать так долго. При том что у MSP430 в два раза шире разрядность и есть аппаратный умножитель.

Исходная версия KivApple, :

Вот так работает нормально:

int32_t tmp = (((int16_t)BYTE_SWAP(mpu6050_response[3])) * (int32_t)100);
temperature = tmp / 340 + 3653;

При том если приводить результат BYTE_SWAP к int32_t, то не работает.