Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Делаю вывод в UART - printf("Data = %d", 12); Приходит в терминал Data = 3072 Что это???
Отправлено
Запутался
12 декабря 2009, г. 18:44
Составить ответ
|
Вернуться на конференцию.
Ответы
не обманывайте, у Вас там не 12, а переменная. 3072 = 0х0С00 = 12 * 256
-
koyodza
(12.12.2009, 18:48:56
93.73.217.94
,
пустое
)
Посчитали правильно, но почему число 12 переводится в 3072. И как сделать чтоб пересылалось име...{+}
-
Запутался
(12.12.2009, 18:55:2
208.87.243.66
, 184 байт)
вероятно, снова обманываете, и программа несколько сложнее, чем здесь привели
-
koyodza
(12.12.2009, 19:07:0
93.73.217.94
, 173 байт)
Разобрался. Правильный ответ - printf("Time = %02d", (U16)temp1);
-
Запутался
(12.12.2009, 19:21:46
208.87.243.66
,
пустое
)
%02d даст дополнение нулём слева для чисел 0..9, т.е. 7 будет выведено как 07
-
koyodza
(12.12.2009, 19:25:10
93.73.217.94
,
пустое
)
unsigned char temp1=12; printf("Data = %d", temp1); Нужно чтоб вывело 12, а выводит 3072
-
Запутался
(12.12.2009, 19:02:10
208.87.243.66
,
пустое
)
Выкиньте компилятор
-
Запрещенные_символы
(12.12.2009, 19:36:3
91.135.22.160
, 172 байт)
Весь смысл в (U16)temp1 Компилятор Кейль
-
Запутался
(12.12.2009, 20:02:44
208.87.243.66
,
пустое
)
смысл в том, что переменная у вас char, а формат %d для int предназначен, потому без явного приведения типа и не работало
-
A_R_V
(12.12.2009, 21:48:0
87.117.1.198
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 6 на 2:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru