Hello all! I'm stuck in an strange situation. I've read the docs, googled a=20 lot, researched a lot and still haven't solved it. Please, let me explain with an example: ---- uint16_t i; // A 16 bit signed integer _Fract f; // A 16 bit signed fractional i =3D 100; // [i] is now 0x0064 f =3D i; // [f] is now 0x7FFF. I need it to be 0x0064. ---- The actual application is getting values from an external ADC in=20 signed int form and needs to move to a _Fract value to make use of=20 fractional arithmetics built in XC16. But the compiler is doing some=20 conversion with saturation. I just need the int values (-32768 to +32767) scalled to fractional=20 (-1 to +1). Actually, it's just copying the contents from one register=20 to the other. I can convert int to float and then make the conversion and=20 scalling to _Fract but it's a lot of wasted CPU cycles. Anyone have any clues? Best regards! --=20 Edson Brusque Tim: (47)9938-3439 --------------------------------------------------------------------- Edson Brusque www.BruschiAmps.com.br Blumenau, SC, Brazil (47)3232-0984 --------------------------------------------------------------------- --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .