Цитата(Tomade @ Aug 21 2008, 11:49)

Спасибо всем откликнувшимся. Вот что получилось (компилятор - CVAVR 1.25.2). Если в строке sprintf(lcd_buffer,"%i",x) вместо i ставить I или Iu, то в симуляторе на табло LCD вообще ничего не выводится (и для int, и для long). После игры в метод тыка оказалось, что правильно выводятся числа до 65535, если вместо i ставить просто u, причём независимо от настроек, о которых говорил zhevak в последнем письме.
Другие варианты, перечисленные в справке CVAVR для (s)printf features, ни к чему не привели.
Как же вывести на экран LCD число, большее 65535?
Попробуйте сделать так:
Код
#include <stdio.h>
...
unsigned long x;
x = 1000000;
char s1[10];
...
sprintf(s1, "%li", x); // Библиотечная функция
LCD_StringXY(0, 1, s1); // -- это моя функция, у Вас должно быть что-то свое
Вы заставили-таки меня сделать это.
Вы неправильно используете модефикаторы. Я попробовал и так sprintf(s1, "%
li", x); и так sprintf(s1, "%
ld", x); -- работает в обоих случаях. У меня CodeWizardAVR V1.25.3 Standard.