
#define NUMBER_OF_BARS       14
#define MAXIMUM_SPEED_IN_MPH 140
#define SCALE_EXPONENT       5 

unsigned short tmp;
unsigned char bar_value;

tmp = (unsigned short) NUMBER_OF_BARS * speed_in_mph; /* maximum: 14 * 140 = 1960 */
tmp = (tmp << SCALE_EXPONENT); /* use all 16 availaable bits, maximum: 1960 * 32 = 62720 */
tmp = tmp / MAXIMUM_SPEED_IN_MPH;
tmp = (tmp + (1 << (SCALE_EXPONENT - 1))) >> SCALE_EXPONENT; */ Round /*
bar_value = (unsigned char) tmp;
