В идеале как в этом архиве, цифры -22.2 - знак градуса не получиться вывести ,т.к. мест нет под свободыне символы, точка будет в том месте, после точки 1 знак
а? Код (C++): byte block[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111 }; по сути это закрашенный квадратик (который если память не изменяет,присутствует во всех кодовый страницах встроенного знакогенератора) и для чего он нужен не ясно... последний символ обрезается?
Сиволы брал отсюда http://www.instructables.com/id/Custom-Large-Font-For-16x2-LCDs/?ALLSTEPS - block используется для цифры 4
логически рассчитать положение курсора (иходя из .xlsx) Код (C++): byte SetCuror(int a, int MinusFind, byte lenString) { int var = (lenString - 3) + MinusFind; if (!var or var == 2) return (a) <= (1) ? (7) : (11); else return (a) <= (!(MinusFind)) ? (3) : ((a) <= (2) ? (7) : (11)); } ещё в блок расклада строки добавить Код (C++): int MinusFind = floatToString.indexOf("-"); вызов функции Код (C++): for (int a = 0; (lenString - 1) > a; a++) { if (charBuf[a] == '-') printDigits(MINUS, 0); else if (charBuf[a] == '.') printDigits(POINT, 10); else { printDigits((int)(charBuf[a] - '0'), SetCuror(a, MinusFind, lenString)); } }
Добавил условие затирания 1-й цифры (вручную), но не хочет, т.е. если было -15,0 - стало -5,0 -то 1 остается, а у меняпо условию должна быть удалена. И с + также - где я не прав? Код (Text): for (int a = 0; (lenString - 1) > a; a++) { if (charBuf[a] == '-') printDigits(10, 0); else if (charBuf[a] == '.') printDigits(11, 10); else printDigits((int)(charBuf[a] - '0'), SetCuror(a, MinusFind, lenString)); if ((charBuf[a]<0) && (charBuf[a]>-10)) printDigits(13, 3); else if ((charBuf[a]>0) && (charBuf[a]<10)) printDigits(13, 3); // удалить } }
идея по сути верная но в цикле она не может быть реализована! можно и так ну или очищать дисплей при поступлении новой информации