1. чтобы sprintf правильно выводил float, надо обязательно задать эту фичу в настройках проекта. по умолчанию sprintf не поддерживает float с целью экономии памяти. думаю, вы будете неприятно удивлены размером программы после включения поддержки форматированного вывода чисел с плавающей точкой...Vlad0o писал(а):проверил. получилось вот так:
while(1)
{
char str[25];
sprintf(str,"%i", 56);
write_1(0, str);
T = 1;
Delay(2000);
T = 0;
Delay(2000);
}
Для int если число состоит меньше чем из 3 и больше чем из 4 цифр, то на лсд отображается либо ерунда 5значная либо 0.
Для float sprintf(str,"%f", 50,6); какое бы число не стояло - все равно отображаются три вопросительных знака "???".
Пойду дальше экспериментировать)
2. по поводу целых - изучите документацию на libc для своего компилятора - возможно, надо не %i указывать, а, например, %d или что-то подобное.