Цитата(Яrik @ Feb 6 2007, 21:25)

Да, да какраз это... Я думал, что используя целочисленную арифметику удастся уменьшить объем занимаемой програмой. Но теперь понял, что ошибался.
Я питался выводить на LCD результат измереного АЦП напряжения. В результате использования команды printf, объем памяти занимаемой программой сотавил 50% имеющейся в ATmega8.
Может кто поделится своими наработками? Зарание благодарю.
Дык это не плавучая арифметика столько памяти жрет, а сама функция printf!

Уже неоднократно и многими подчеркивался тот факт, что printf и sprintf требуют для работы от сотни байт до 1,5 килоБайт стековой памяти, то бишь ОЗУ. Так что советую оставить плавучку в покое, а лишь написать собственную функцию перевода числа в символьное представление.
Когда-то делал устройство, поддерживающее пакетную связь по RS-485, обработку клавиатуры и вывод на два четырехсимвольных семисегментника двух дробных чисел. Также долго мучал printf, пока не понял, что на имеющихся 256 байтах ОЗУ нельзя ее пользовать. Для вывода даже одного числа с фиксированной точкой и двумя знаками после запятой printf использовал больше 100 байт стека. А в распоряжении было всего около 50 байт

В результата написал свою функцию типа поразрядного деления на степень 10, которая использовала не более 8 байт на стеке. За скоростью вычислений в таких случаях гнаться не нужно. Потому что обновлять информацию на индикаторе чаще 3 раз в секунду нет никакого смысла. Во-первых, человеческий глаз инертен. Во-вторых, наблюдателю нужно еще время чтобы
осознать наблюдаемое число. Так что, используйте на здоровье плавучку и
не используйте printf.