Управление жк через ht1621b

что пробовать, мне не в порт посылать надо, а на экран

Как Вы себе это представляете?
Я имею ввиду вывод 4 символов на дисплей из двух. К тому же в нем, как я понимаю, нет десятичной точки.

Можно, конечно же «извернуться» и выводить сначала целую часть в оба знакоместа, а дробную часть, например, только в правое знакоместо, а левое просто очищать.

целую часть я вывел таким образом

uint8_t volt = vin;

Write_1621( 2,num1[volt / 10]);  //зажигаем первую цифру 
Write_1621( 4,num1[volt % 10]);  //зажигаем вторую цифру
// адрес первой цифры 2, второй 4, третьей 6

а десятичную как я не могу разобраться

Ничего не понял, у него 2 знакоместа или 4 всё-таки?

Ну, ну…

строка из 4, нужно только один символ после запятой вывести и всё

Всё равно не понял (так как изначально, вроде бы был дисплей на 2 знакоместа, сейчас уже 4, ну да ладно…).

Если проблема в том как десятичную цифру получить, то так:

uint8_t volt = vin;
uint8_t dec = uint8_t ((vin - (float)volt) * 10.0);

Write_1621( 2,num1[volt / 10]);  //зажигаем первую цифру 
Write_1621( 4,num1[volt % 10]);  //зажигаем вторую цифру

Write_1621( 6,num1[dec]);  // зажигаем десятичную цифру в знакоместе по адресу 6, согласно комментария ниже:

// адрес первой цифры 2, второй 4, третьей 6

всё показывает, но только показываются очень быстро, не успевает погаснуть одна цифра уже загорается вторая, как сделать задержку примерно 0.5 секунд

Ну если программа «терпит» - delay() добавь )))

Так ведь уже нечего выводить, дроби то нет

Ну посмотри 28 сообщение по лучше ))

да, но delay будет тормозить весь void loop, а у меня там кроме вольтметра ещё другие расчёты которые должны быстро выполняться

Тогда вдумчиво изучай:

Нет дробной части

0_0 чего у него нет в 23м? vin? Куда делся? :smiley:

Я повернул время вспять! Ответил раньше чем меня спросили…))

Да ты маг)))

А еще можно хранить напряжение как целое в дВ (123дециВ=12,3 В), и выводить как целое.

Я о том, что после 5 строки у ТС в #23 дробная часть отсутствует, и выводить нечего))

Т.е. просто сделать:

vin *= 10.0;

int16_t volt = vin;

И выводи себе…