Страница 1 из 1
вывод на LCD
Добавлено: Чт сен 24, 2015 14:08:11
divradio
CVavr . Нужно вывести число например 123456789 в форматированном виде например 12 345 6789 вместо пробелов можно точки .
Функция sprintf с большими числами не работает , ltoa в строку преобразует , но информации по форматированию никакой не нашёл , наверно не может , Пробовал как когдато для ПИКов делал из массива познаково , но вместо пустых знаков каракули лезут .Может что посоветуйте ?
Re: вывод на LCD
Добавлено: Чт сен 24, 2015 15:12:13
ARV
Код: Выделить всё
char str[] = "1234567890";
unsigned char i, pos;
i = strlen(str) % 3;
pos = 0;
while(str[pos] != 0){
if((i == 0) && (pos != 0)){
lcd_putc(' ');
i = 3;
}
lcd_putc(str[pos++]);
i--;
}
кажется так как-то...
Re: вывод на LCD
Добавлено: Чт сен 24, 2015 15:51:22
pyzhman
Там формат не тысячный, а 2знака-3-4.
Re: вывод на LCD
Добавлено: Чт сен 24, 2015 16:06:21
divradio
компилятор не проглатил ...
В принципе устройство типа частотомера и уже работает с функцией ltoa , но захотелось красоты ,если б результат был в определённом кол-ве цифр вопроса не возникло , но он меняется в широком диапазоне и пустые места в массиве после преобразования заполняются каракулями ...Когда то для ПИКа в частотомере писал на асемблере ппреобразование 16в 10 ,там вставки легко делаются, но здесь асемблер немного другой да и лениво уже изучать его .
А формат не важен 2-3-4 или 4-5 или 3-6... главное как длинную строку поделить на части
Re: вывод на LCD
Добавлено: Чт сен 24, 2015 16:12:03
pyzhman
При непроглатывании (здесь именно "а") компилятор выдает причину.
Re: вывод на LCD
Добавлено: Пт сен 25, 2015 11:59:12
divradio
Благодарю всех, вопрос решил ! тему можно закрыть!