Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Символьные перемменые
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
sergey sva
Еще одна не задача, как из инт значения сделать символы? стандартых таких функций в keil я не нашел,

Цитата
unsigned char dat = 105;
unsigned char dat_arr[4];
unsigned char len = 4;
while(len--)
{

dat_arr[len] = '5';
dat_arr[len] = '0'; // вместо этого чтобы получилось что то вроде этого |
dat_arr[len] = '1'; |
|
|
dat_arr[len] = '/dat++/'; вот как извернуться, чтобы получилось что то *

наподобие = '/dat++/'; ?

}


print(1,10,dat_arr,6);
uriy
скорее всего keil поддерживает форматированный вывод. Например у вас есть своя функция printf. Тогда я делаю следующим образом
char tmp[30];
sprintf(tmp, "line = %4d", line);
printf(tmp);

или для каждой тетрады по отдельности

ch<10? (ch+='0') : (ch+='A' - 10)
sergey sva
Цитата(urasinov @ Nov 24 2007, 12:05) *
скорее всего keil поддерживает форматированный вывод. Например у вас есть своя функция printf. Тогда я делаю следующим образом
char tmp[30];
sprintf(tmp, "line = %4d", line);
printf(tmp);

или для каждой тетрады по отдельности

ch<10? (ch+='0') : (ch+='A' - 10)



нужна функция которая будет преобразовывать, строку символов, и инт значения в (массив символов).
например: аргумент функции с ацп = 100

Цитата
int acp = 100 ; // 100
unsigned char str "Здрасте";
unsigned char buf[100];


void IntToStr(unsigned char str,int acp )
{
int d = 100;
while(d--)
{
buf[d] = //не знай что сдесь делать

}

}


после вызова функции в массиве должно быть

buf[1] = 'З';
buf[2] = 'Д';
buf[3] = 'Р';
buf[4] = 'А';
buf[5] = 'С';
buf[6] = 'Т';
buf[7] = 'Е';

buf[8] = '1';

buf[9] = '0';

buf[10] = '0';


если это можно сделать функцией принт, не пойму как. Извеняте за такие ребусы smile.gif
DASM
int acp = 100 ; // 100
unsigned char str "Здрасте";
unsigned char buf[100];
sprintf (buf, "%s%u", str, acp);
И я так понял Вы хотите после вызова функции в массиве должно быть

buf[0] = 'З'; а не buf[1] = 'З'; (индексация от нуля идет)
rezident
У Keil неплохой справочник по функциям Си на сайте, что же вам еще нужно?
http://www.keil.com/support/man/docs/c51/c51_sprintf.htm
alvol
Цитата(sergey sva @ Nov 24 2007, 17:47) *
ужна функция которая будет преобразовывать, строку символов, и инт значения в (массив символов).
например: аргумент функции с ацп = 100


int acp = 100 ; // 100
unsigned char str "Здрасте";
unsigned char buf[100];

Не знаю, может поможет, я заранее заготавливаю себе ASCII строки текста примерно так:

//----- type defenitions ======
typedef unsigned char byte;
typedef unsigned int word;
//===== type defenitions ======

xdata byte TestBuf[16] = {'H','E','L','L','0','_','W','O','R','L','D','!',' ',':','-',')'};

а потом это все выдается на куда нужно без злобных преобразований)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.