void dcmotor_set_a(int16_t value) { value = valconv(value); TIM_SetCompare1(TIM12, value + _center_value); }
static int do_conversion_int (unsigned long long val, int f, int width, int precision, int (*func)(int c, void *data), void *data) { int len = 0; int n = 0; int leftsp = 0, leftlen = 0, leftzero = 0, rightsp = 0; char buf[32], *leftbuf = "", *bufp; if (f & CONVERSION_CHARACTER) { PUTCHAR ((int)val); return n; } if ((f & HAS_PRECISION) && precision == 0 && val == 0) return 0; if (f & CONVERSION_DECIMAL) len = valconv (val, buf, sub10, "0123456789"); else if (f & CONVERSION_OCTAL) len = valconv (val, buf, sub8, "01234567"); else if ((f & CONVERSION_HEXADECIMAL) && (f & CONVERSION_CAPITAL)) len = valconv (val, buf, sub16, "0123456789ABCDEF"); else if (f & CONVERSION_HEXADECIMAL) len = valconv (val, buf, sub16, "0123456789abcdef"); if ((f & HAS_PRECISION) && precision > len) leftzero = precision - len; if (!(f & CONVERSION_DECIMAL) && (f & FLAG_ALTERNATE_FORM) && val != 0) { if ((f & CONVERSION_OCTAL) && leftzero == 0) { leftbuf = "0"; leftlen = 1; } else if (f & CONVERSION_HEXADECIMAL) { if (f & CONVERSION_CAPITAL) leftbuf = "0X"; else leftbuf = "0x"; leftlen = 2; } } if (f & CONVERSION_DECIMAL) { if (f & FLAG_PLUS) { if (f & FLAG_POSITIVE_SIGN) { leftbuf = "+"; leftlen = 1; } else if (f & FLAG_POSITIVE_BLANK) { leftbuf = " "; leftlen = 1; } } else if (f & FLAG_MINUS) { leftbuf = "-"; leftlen = 1; } } if ((f & HAS_WIDTH) && width > leftlen + leftzero + len) { if (f & FLAG_LEFT_ADJUSTED) rightsp = width - (leftlen + leftzero + len); else leftsp = width - (leftlen + leftzero + len); } if ((f & FLAG_ZERO_PADDED) && !(f & HAS_PRECISION)) { leftzero += leftsp; leftsp = 0; } bufp = buf; while (leftsp--) PUTCHAR (' '); while (leftlen--) PUTCHAR (*leftbuf++); while (leftzero--) PUTCHAR ('0'); while (len--) PUTCHAR (*bufp++); while (rightsp--) PUTCHAR (' '); error: return n; }