fix_math.h 447 B

1234567891011121314151617181920
  1. #ifndef _FIX_MATH_H__
  2. #define _FIX_MATH_H__
  3. #include "bsp/bsp.h"
  4. #include "os/os_types.h"
  5. typedef signed short sfix10_t;
  6. typedef signed short sfix6_t;
  7. #define _F2sFix10(x) (sfix10_t)(x * 1024.0f)
  8. #define _F2sFix6(x) (sfix6_t)(x * 64.0f)
  9. #define Fix10_6(x) (x >> 4)
  10. static __INLINE float sfix6toF(sfix6_t v) {
  11. s16 num = (v >> 6) & 0xFFFF;
  12. u16 tail = v & 0x003F;
  13. float f = num + (float)tail / 64.0f;
  14. return f;
  15. }
  16. #endif /* _FIX_MATH_H__ */