10 void printNumber(
long input,
unsigned char decimalBits,
unsigned char decimal) {
12 unsigned long pow = 10, mask = 0xFFFFFFFF, result, output;
14 if ((input & 0x80000000) != 0) {
22 for (i=1;i<decimal;i++)
25 mask >>= (32 - decimalBits);
26 result = pow * (
unsigned long)(input & mask);
27 output = result >> decimalBits;
28 output += (result >> (decimalBits-1)) & 0x1;
30 printf(
"%ld.%0*ld", input >> decimalBits, decimal, output);
33 void printFix(
long input,
unsigned char decimal) {
38 return SIN[val & 0x1FF];
42 return sin(val + 128);
51 long sinVal, cosVal, tempX;