Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C вывод числа в последовательный порт
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
yakub_EZ
Имею стартеркитовскую отладку с LPC2388, программу пишу на си в Keil мювижн 4. Передается некоторое целое числовое значение (до 10000 в десятичной системе) по uart, хотелось бы его видеть в окне терминала в десятичном коде.
Я так понимаю, можно поделить его по десятичным порядкам, столбиком, и вывести, перекодируя в коды ASСII, но неужели в этих продвинутых средах разработки на этот случай нет уже чего готового? Или есть какя нибудь библиотека?
MrYuran
Цитата(yakub_EZ @ Nov 3 2010, 13:34) *
Я так понимаю, можно поделить его по десятичным порядкам, столбиком, и вывести, перекодируя в коды ASСII, но неужели в этих продвинутых средах разработки на этот случай нет уже чего готового? Или есть какя нибудь библиотека?

Есть, stdlib и функция printf()
dimka76
еще itoa(...) можно использовать
ukpyr
последовательно вычитать степени 10
demiurg_spb
Пользуйтесь поиском по форуму.
Миллион раз обсасывалось...
yakub_EZ
Обсабывалсь действительно много раз, да каждый раз по разному.
Решение именно этой задачи не нашел.
Код
printf("K1 = %04XH\n", K1);

в <stdio.h> и <stdlib.h> выдает только шестнадцатиричные значения? (Без X выдает пустую строку)
К ней добавить десятичный вычитатель.
itoa(..) - хэлп микровижн молчит
MrYuran
Цитата(yakub_EZ @ Nov 3 2010, 15:35) *
в <stdio.h> и <stdlib.h> выдает только шестнадцатиричные значения? (Без X выдает пустую строку)

a "%d" что выдаёт?
yakub_EZ
Цитата(MrYuran @ Nov 3 2010, 14:44) *
a "%d" что выдаёт?

То, что надо выдает biggrin.gif . Запустил при <stdio.h> . Спасибо, сэкономили просто кучу времени
sigmaN
Иногда хэлпы читать всё ж полезно))
yakub_EZ
sigmaN Хелпе чего? Направьте на путь истинный пожалуйста.
Хелп мювижн на 70% посвящен отладочным платам и фото их разъёмов и кнопочек. Запрос по тэгам "stdio", "printf" просто вываливает их (отладочные платы) по порядку.
Даташит на контроллер у меня распечатан и переплетен, но там про это ни строчки
Книга Тревора Мартина является большей частью подставкой под плату, чем источник информации.
Гугл же дает много и приходится долго выискивать, жонглирвать запросами
Artem_Petrik
Цитата(yakub_EZ @ Nov 3 2010, 22:13) *
Хелпе чего? Направьте на путь истинный пожалуйста.


Начните с Кернигана и Ричи. Ну или конкретно справочник по standard C library. На худой конец - непосредственно стандарт на язык. Все, что касается непосредственно стандарта на язык С платформонезависимо, а потому традиционно не освещается в хелпах на конкретный компилятор/ИДЕ. Предполагается, что пользователь уже знаком непосредственно с языком.
sigmaN
Ну да да, эмбэддэд среды разработки более ориентированы на свою специфику и даже не смотря на наличие компилятора, могут не содержать хэлпа.
Ео любой хэлп по Си расскажет Вам про printf всё, что только можно и чего нельзя )))
Причём надо понимать, что printf - это функция из стандартной библиотеки языка Си и везде она будет одинакова - т.е. брать можно любой хэлп.
Собственно, гугль первой же ссылкой на запрос printf выдаёт http://ru.wikipedia.org/wiki/Printf уж не знаю что ещё можно добавить. Растолковано всё))

И вообще, вбить имя функции в гугль - это ж как Отче наш smile.gif
sergeeff
Цитата(yakub_EZ @ Nov 3 2010, 15:35) *
Обсабывалсь действительно много раз, да каждый раз по разному.
Решение именно этой задачи не нашел.


Купите себе "Полный справочник по С" Герберта Шилда и положите себе под руку на рабочем столе, тогда не будите срамиться с такими вопросами.
ViKo
Цитата(yakub_EZ @ Nov 3 2010, 22:13) *
Направьте на путь истинный пожалуйста...

Может быть, вам окажется полезным почитать эту тему.
http://electronix.ru/forum/index.php?showt...=77779&st=0
alekseykoj
Функция itoa. Ее использование не предусматривает переносимости, поскольку эта функция не определена ни в одном стандарте языка Си; тем не менее, компиляторы поддерживают ее за счет использования заголовка <stdlib.h>

void itoa(int input, char *buffer, int radix)

itoa принимает передаваемое целое число input и конвертирует его в число в основании корня radix. Полученное число (последовательность цифр основания radix) записывается в буфер вывода buffer.

Аргумент radix определяет основание системы исчисления для input; его значение может лежать в пределах от 2 до 36.

В зависимости от реализации, itoa может возвращать указатель на первый символ в буфере buffer, или может быть создана таким образом, чтобы передавать нуль-buffer, в результате чего функция возвращает длину строки, которая «будет» записана в корректный buffer.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.