Exemplo n.º 1
0
void dcmotor_set_a(int16_t value) {
	value = valconv(value);
	TIM_SetCompare1(TIM12, value + _center_value);
}
Exemplo n.º 2
0
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;
}