Помогите подправить исходный код

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Сб мар 03, 2012 02:16:23

Сообщение dumser2 »

Здраствуйте! Написал код для вычесления начальной скорости в формате например 123 м.с. Но мне нужно чтобы было 52.1 тоесть показывались десятые, а все что больше 99.9 без десятих: например 123 м.с.

Вот часть кода:

static void setLedValue(int16_t value) {
seg3 = digitToLedValue(value % 10); //3 сегм


if (value >= 10) {
seg2 = digitToLedValue((value / 10) % 10); //2 сегм
} else {
seg2 = 0b00000000;
}


static void calculateAndShowSpeed(uint16_t lastTime) {
speed = (F_CPU / 1000L) * BASELENGHT / lastTime;
error=false;
errorFirst=false;
errorSecond=false;

if (speed >= 1000) {
setLedValue(speed / 10);
} else {
setLedValue(speed);
if (speed < 10)
{
seg2 = 0b00111111;

}
seg2 |= 0b10000000;
}
writeToEEPROM(speed);
}

if (value >= 100) {
seg1 = digitToLedValue((value / 100) % 10); //1 сегм
} else {
seg1 = 0b00000000;
}
}
Реклама
Самсусамыч

Сообщение Самсусамыч »

При вычислении сотен отслеживай данный результат… если получаешь значение сотен больше нуля значит выводи значения без десятых и точки. А если стони равны нулю то выводи с точкой и десятыми.
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

dumser2, а в чём проблема то ? В коде у Вас вроде есть какое-то условие на >=100.
:dont_know:
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Сб мар 03, 2012 02:16:23

Сообщение dumser2 »

Если больше 100 то все ок, а вот с точкой проблемы.
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «AVR»