 				units = abso;
 			else
 				units = cent;
-			reformat();
+			p = reformat(units, curr_temp, buf);
 		}
 		break;
 	case TIMER:

	return 1.0 / rtk;
}

void format_temp(double t, uint8_t *buf) {
	uint8_t u = centigrade;
	if (units == fahr)
		u = fahrenheit;

		*buf++ = minus;
	}
	int temp = (int)(t + 0.5);
	bool first = true;
	for (int pow = 100; pow > 0; pow /= 10) {
		int dig = temp / pow;
		if (!first || dig != 0 || pow == 1) {
			temp -= dig * pow;
			*buf++ = digits[dig];
			first = false;
		}
	}
	*buf++ = 0;
}

uint8_t *reformat(units_t units, double t, uint8_t *buf) {
	format_temp(units, t, buf);
	bits(buf[0]);
	return buf+1;
}

void setup(void)
