Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
typedef short s16;
typedef long s32;
#include
static inline s32 Mpy_32(s16 hi1, s16 lo1, s16 hi2, s16 lo2);
/*
| Multiply two 32 bit integers (DPF). The result is divided by 2**31 |
| L_32 = (hi1*hi2)<<1 + ( (hi1*lo2)>>15 + (lo1*hi2)>>15 )<<1
|
| This operation can also be viewed as the multiplication of two Q31
| number and the result is also in Q31.
*/static inline s32 Mpy_32(s16 hi1, s16 lo1, s16 hi2, s16 lo2)
{
s32 L_32;L_32 = L_mult(hi1, hi2);
L_32 = L_mac(L_32, mult(hi1, lo2) , 1);
L_32 = L_mac(L_32, mult(lo1, hi2) , 1);return( L_32 );
}