Медленная работа LiquidCrystal_I2C

b707
Offline
Зарегистрирован: 26.05.2017

PEF пишет:

спасибо за участие, но оно сподвигло меня решить эту проблему. Возможно коряво

идея правильная, но налицо куча странных лишних действий...

для того чтобы вывести на печать число 515 как 51.5 - достаточно вывести целую и дробную часть отдельно, а между ними - точку. И не надо никак трахаться с "одномерными матрицами " :)

Logik
Offline
Зарегистрирован: 05.08.2014

b707 пишет:

PEF пишет:

спасибо за участие, но оно сподвигло меня решить эту проблему. Возможно коряво

идея правильная, но налицо куча странных лишних действий...

для того чтобы вывести на печать число 515 как 51.5 - достаточно вывести целую и дробную часть отдельно, а между ними - точку. И не надо никак трахаться с "одномерными матрицами " :)

то он так коряво описал довольно правильный подход типа

char s[10];
char c[5];

strcpy(s,"F 00.0 Hz");
itoa(val,c,10);

s[5]=c[2];
s[3]=c[1];
s[2]=c[0];


если конечно val трехзначное всегда. А если не всегда - можно его сделать всегда 4-х значным прибавив 1000. И взять с нужных мест нужные символы. Такие маленькие хитрости иногда помогают, если ими не злоупотреблять.

nik182
Offline
Зарегистрирован: 04.05.2015

Я как то обычно использую sprintf(s,"F %2u.%1u Hz", v/10,v%10); если v целое которое нужно напечатать как плавающее, s буфер для вывода.

Logik
Offline
Зарегистрирован: 05.08.2014

sprintf куда более "тяжелая" штучка. Если легко без нее, то лучше без нее.

PEF
Offline
Зарегистрирован: 13.06.2021

если конечно val трехзначное всегда. А если не всегда - можно его сделать всегда 4-х значным прибавив 1000. И взять с нужных мест нужные символы. Такие маленькие хитрости иногда помогают, если ими не злоупотреблять.

Когда val  не трехзначное я принудительно пишу нули. При простое и запуске дизеля.

nik182
Offline
Зарегистрирован: 04.05.2015

Logik пишет:

sprintf куда более "тяжелая" штучка. Если легко без нее, то лучше без нее.


Ну может и тяжёлая, только вот ни разу она мне палок в колеса своей тяжёлостью не вставляла. Зато универсальная. Пишет сколько надо и ничего ни домножать ни беспокоиться о нулях.