строка printf("1:%.4u,2:%.4u,3:%.4u",ADOUT[0], ADOUT[1], ADOUT[2]);
где adout - флоаты - занимает 4 миллисекунды при оптимизации - скорость и 9 миллисекунд при оптимизации размер
естественно режим библиотеки - полный
а вот такой вариант функции
Код: Выделить всё
lcd_gotoxy(0,0);
printf("1:%.4u,2:%.4u,3:%.4u",ADOUT[0], ADOUT[1], ADOUT[2]);
// рисуем полоску первого канала
lcd_gotoxy(0,1);
lcd_putsf("1");
dr_bar(1, 1, 1, ADOUT[7], 0, 100, 9);
lcd_gotoxy(10,1);
lcd_putsf("2");
dr_bar(11, 1, 2, ADOUT[6], 0, 100, 8);
lcd_gotoxy(0,2);
lcd_putsf("3");
dr_bar(1, 2, 3, ADOUT[5], 0, 100, 1);
dr_bar(3, 2, 4, ADOUT[5], 0, 100, 2);
dr_bar(6, 2, 5, ADOUT[5], 0, 100, 7);
dr_bar(10, 2, 6, ADOUT[5], 0, 100, 4);
//printf("7:%.4u,8:%.4u ", ADOUT[6], ADOUT[7]);
//lcd_puts(a);
lcd_gotoxy(0,3);
printf("DS:%05.2f Time:%.4lu",ds_temps[0], RealSec);
задерживается на 20 миллисекунд....
конечно же ещё есть в фоне прерывания ацп и таймера - каждую миллисекунду
с экраном работаю через ожтдание флага занятости - ниодной тупой задержки нет
с каждой ногой работаю по отдельности...побитово
а если в протеусе вместо 250 килогерц тактовую экрана поднять в 10 раз то время сокращается до 13 миллисекунд - вывод - половину времени контролер тупит в ожидании экранчика