Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Преобразование числа в строку STM32 Cocox

Непрочитано 16.11.2012, 09:41  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Преобразование числа в строку STM32 Cocox

Добрый день, подскажите, как можно преобразовать число в строку на С++ для МК STM32?
работаю в среде Cocox
функция itoa() не определена.
sprintf() - пишет ошибку при компиляции

Чем можно воспользоваться?
Реклама:
sanstan вне форума  
Непрочитано 16.11.2012, 12:02  
makser1
Прописка
 
Регистрация: 14.04.2009
Сообщений: 103
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 10 сообщении(ях)
makser1 на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

Код:
void itoa(int val, int base,  char *bufstr) // число в строку по основанию
{
	uint8_t buf[32] = {0};
	int i = 30;
	int j;
	for(; val && i ; --i, val /= base)
		buf[i] = "0123456789abcdef"[val % base];
	i++; j=0;
	while (buf[i]!=0){ bufstr[j]=buf[i]; i++; j++;}
}
makser1 вне форума  
Сказали "Спасибо" makser1
sanstan (16.11.2012)
Непрочитано 16.11.2012, 12:43  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

Ужас!!!
Три строки и столько ошибок.
Эт где так учать программы писать ?
Boba_spb вне форума  
Непрочитано 16.11.2012, 13:12  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

sanstan какую ошибку sprintf выдает?
Hives вне форума  
Непрочитано 16.11.2012, 13:17  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

Сообщение от Boba_spb Посмотреть сообщение
Ужас!!!
Три строки и столько ошибок.
Эт где так учать программы писать ?
Пожалуйста, укажите на ошибки. Постарюсь не повторять.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 16.11.2012, 13:32  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

Спасибо автору, Функция работает!!

По поводу ошибок сам не понимаю, что компилятор пишет:
с функцией sprintf(CS, "%d", r); :

[cc] Starting link
[cc] arm-none-eabi-gcc -O0 -nostartfiles -Wl,-Map=ind_ADC.map -mcpu=cortex-m3 -mthumb -LD:\projects\STM32\ind_ADC -Wl,--gc-sections -Wl,-TD:\projects\STM32\ind_ADC\link.ld -g -o ind_ADC.elf ..\obj\startup_stm32f10x_md_vl.o ..\obj\core_cm3.o ..\obj\system_stm32f10x.o ..\obj\hd44780_driver.o ..\obj\stm32f10x_gpio.o ..\obj\main.o ..\obj\stm32f10x_rcc.o
[cc] c:/coocox/coide/gcc/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
[cc] sbrkr.c.text+0x12): undefined reference to `_sbrk'
[cc] collect2: ld returned 1 exit status

BUILD FAILED
Total time: 2 seconds

----------------------------------------------
без этой функции:

[cc] Starting link
[cc] arm-none-eabi-gcc -O0 -nostartfiles -Wl,-Map=ind_ADC.map -mcpu=cortex-m3 -mthumb -LD:\projects\STM32\ind_ADC -Wl,--gc-sections -Wl,-TD:\projects\STM32\ind_ADC\link.ld -g -o ind_ADC.elf ..\obj\startup_stm32f10x_md_vl.o ..\obj\core_cm3.o ..\obj\system_stm32f10x.o ..\obj\hd44780_driver.o ..\obj\stm32f10x_gpio.o ..\obj\main.o ..\obj\stm32f10x_rcc.o
Program Size:
text data bss dec hex filename
4120 0 1032 5152 1420 ind_ADC.elf

BUILD SUCCESSFUL
sanstan вне форума  
Непрочитано 16.11.2012, 13:37  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

1. Prototype
char *itoa(int value, char *string, int radix);
2. itoa должна заканчивать строку нулевым байтом;
3. itoa(0,10,str) - не работает
4. itoa(-1,2,str) - не работает






Вот результат сравнения

---- 0 ----
Типа itoa -› Привет Волку
itoa -› 0
---- 12345 ----
Типа itoa -› 12345т Волку
itoa -› 12345
---- -1 ----
Типа itoa -› 12345т Волку
itoa -› 11111111111111111111111111111111


void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *st="Привет Волку ";
char *st1="Привет Волку ";
int n=0;
itoa_n(n,10,st);
itoa(n,st1,10);
Memo1-›Lines-›Add("---- "+IntToStr(n)+" ----");
Memo1-›Lines-›Add("Типа itoa -› "+AnsiString(st));
Memo1-›Lines-›Add("itoa -› "+AnsiString(st1));
n=12345;
itoa_n(n,10,st);
itoa(n,st1,10);

Memo1-›Lines-›Add("---- "+IntToStr(n)+" ----");
Memo1-›Lines-›Add("Типа itoa -› "+AnsiString(st));
Memo1-›Lines-›Add("itoa -› "+AnsiString(st1));
n=0xffffffff;
itoa_n(n,2,st);
itoa(n,st1,2);
Memo1-›Lines-›Add("---- "+IntToStr(n)+" ----");
Memo1-›Lines-›Add("Типа itoa -› "+AnsiString(st));
Memo1-›Lines-›Add("itoa -› "+AnsiString(st1));

}
Boba_spb вне форума  
Непрочитано 16.11.2012, 13:48  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

sanstan традиционный вопрос - гугл забанил? за минуту ищется эта непрописанная почему то в GCC библиотека для линковки "sprintf".
Hives вне форума  
Непрочитано 16.11.2012, 14:15  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

Сообщение от Boba_spb Посмотреть сообщение
1. Prototype
char *itoa(int value, char *string, int radix);
2. itoa должна заканчивать строку нулевым байтом;
3. itoa(0,10,str) - не работает
4. itoa(-1,2,str) - не работает
Да, спасибо. Тоже проверил. Работает только для положительного инта, для нуля и отрицательного - нет. Т.е решение частичное, ограниченное, с проверкой на › 0 по входу? Так? Печально, все так хорошо начиналось..
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 19.11.2012, 11:02  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Re: Преобразование числа в строку STM32 Cocox

Hives sprintf не работает в COCOX. Либо я что-то замудрил.

Не знаете, почему функция strcat(str1,str2) выдает на индикаторе только первую часть полученой строки (str1) без (str2) ? ?
работает: strcat(str1,"primer");
не работает:
const char str2="primer";
strcat(str1,str2) ;

не работает:
char str2="primer";
strcat(str1,str2) ;

Последний раз редактировалось sanstan; 19.11.2012 в 11:19.
sanstan вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование числа vvkka Микроконтроллеры, АЦП, память и т.д 12 27.12.2011 01:44
Преобразование 2-х байтного числа в набор десятизначных цифр (Assembler,PIC) Opasif Микроконтроллеры, АЦП, память и т.д 6 29.04.2011 19:52
преобразование 16bit числа на Си (нужна помощь) Uz_Sleep_Walker Микроконтроллеры, АЦП, память и т.д 4 19.02.2010 15:49
как записать строку в массив? dimonbest Микроконтроллеры, АЦП, память и т.д 8 27.02.2008 12:18
преобразование числа для занесения его в регистр на PIC16F84 CERGEI1982 Микроконтроллеры, АЦП, память и т.д 9 11.01.2007 17:47


Часовой пояс GMT +4, время: 10:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.