реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Преобразование типов в С, AT91SAM9 и IAR
ushakoff78
сообщение Apr 6 2009, 07:58
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 8-01-09
Пользователь №: 42 992



Уважаемые коллеги, подскажите, пожалуйста, как можно преобразовать тип переменной int в строку char. Этот вопрос возник, когда я попробовал выводить на LCD данные о позиции мотора. Библиотечные функции IAR позволяют легко выводить строки на LCD. Вывод переменных int требует предварительного преобразования. Посоветуйте как это сделать.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Apr 6 2009, 08:06
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Ну вот, например. На оптимальность не претендую.
CODE
/*************************************************************************
char* long2str(long val, char *pbuf)
Long 2 String buffer length 7 bytes
( order for correct output MSB..LSB )
ATTENTION: value must limit by 7 decimal digits, i.e [ 0 ..9999999 ]
*************************************************************************/
extern char *long2str(u_int val, char *pbuf){
u_int tmp;
uc08 i;
pbuf[7] = '\0';
for( i=7; i>0; i--){
if( val >= 10 ){
tmp = val/10;
pbuf[i-1] = (val - (tmp*10)) + 0x30;
val = tmp;
}else{
pbuf[i-1] = val + 0x30;
val -= val;
}
}
return pbuf;
}
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Apr 6 2009, 08:22
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



char str[32];
int var;

sprintf((char *)str, "%d", var);
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 6 2009, 08:23
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(ushakoff78 @ Apr 6 2009, 10:58) *
Уважаемые коллеги, подскажите, пожалуйста, как можно преобразовать тип переменной int в строку char. Этот вопрос возник, когда я попробовал выводить на LCD данные о позиции мотора. Библиотечные функции IAR позволяют легко выводить строки на LCD. Вывод переменных int требует предварительного преобразования. Посоветуйте как это сделать.

Хм, хороший вопрос в хорошем месте. Типа "Как пройти в библиотеку?"
printf/sprintf - это вроде бы библиотечные функции, и ничего не требуют.
Или место в программной памяти ARM экономим? biggrin.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 6 2009, 08:27
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ushakoff78 @ Apr 6 2009, 10:58) *
как...

Moderator:
Настоятельная просьба выбирать раздел в соответствии с темой и уровнем задаваемых вопросов. Предварительно неплохо заглянуть учебник или воспользоваться поиском по форуму.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 6 2009, 08:43
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



функция itoa Вам поможет. Поищите её описание в хелпе...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
ushakoff78
сообщение Apr 6 2009, 08:48
Сообщение #7





Группа: Участник
Сообщений: 13
Регистрация: 8-01-09
Пользователь №: 42 992



большое спасибо за дельные советы от K Alex, sergeef, а недельные нравоучения мимо.
Функция itoa не работает в IAR. Большое спасибо.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 6 2009, 13:07
Сообщение #8


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(ushakoff78 @ Apr 6 2009, 12:48) *
Функция itoa не работает в IAR. Большое спасибо.
Не верю.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 6 2009, 22:29
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(ushakoff78 @ Apr 6 2009, 14:48) *
Функция itoa не работает в IAR. Большое спасибо.
Даже при подключенном stdlib.h? 07.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 7 2009, 06:34
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(rezident @ Apr 7 2009, 01:29) *
Даже при подключенном stdlib.h? 07.gif

Это опциональная не ANSI С функция - stdlib библиотеки совершенно не обязательно должны ее содержать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 19:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016