Страница 1 из 1
Си: перевод результата из типа float в string.
Добавлено: Пт дек 24, 2010 09:51:14
Slavast
Всем добрый день!
Уже 3-й день не могу перевести полученный результат с АЦП (деленный на коэффициент) с типа с плавающей запятой в символьный для вывода на UART терминала компьютера. Без преобразования выводит квадраты.
Поделитесь опытом, может есть команда или процедура?
Спасибо!
Re: Си: перевод результата из типа float в string.
Добавлено: Пт дек 24, 2010 11:36:56
ARV
если вы настолько расточительны, что используете в своем микроконтроллерном проекте тип float, то почему не используете возможности расточительной функции printf или sprintf для вывода этих чисел? только активируйте в своем компиляторе "расширенную поддержку форматирования" этих функций, т.к. по умолчанию наверняка тип float не поддерживается ими (это, кстати, вам намек: если компилятор по умолчанию считает, что float не нужно поддерживать - возможно, он прав?)
Re: Си: перевод результата из типа float в string.
Добавлено: Пт дек 24, 2010 11:58:40
Fasterpast
Озвучьте компилятор ) CvAVR, например, нормально всё переводит. На других AVR компиляторах я на самом деле подобными извращениями не занимался, ибо в этом месте получаются действительно огромные простои. Если нужно работать с float, советую поискать другой контроллер или городить "сопроцессор"...
Re: Си: перевод результата из типа float в string.
Добавлено: Пт дек 24, 2010 12:05:10
ARV
Fasterpast писал(а):CvAVR, например, нормально всё переводит. На других AVR компиляторах я на самом деле подобными извращениями не занимался, ибо в этом месте получаются действительно огромные простои.
это как следует понимать: CVAVR работает с float-ами гораздо оптимальнее прочих компиляторов или ваше высказывание о "простоях" относится ко всем компиляторам, просто вам не довелось с другими поработать?
Re: Си: перевод результата из типа float в string.
Добавлено: Пт дек 24, 2010 12:38:13
Slavast
Sprintf пробовал.
не работает.
char buf[N];
sprintf(buf,"%f",ab);
for (i=0; i<5; i++)
{
t = s;
USART_Transmit(t); // подпрограммка вывода на UART
}
Re: Си: перевод результата из типа float в string.
Добавлено: Пт дек 24, 2010 12:54:13
Fasterpast
ARV писал(а):Fasterpast писал(а):CvAVR, например, нормально всё переводит. На других AVR компиляторах я на самом деле подобными извращениями не занимался, ибо в этом месте получаются действительно огромные простои.
это как следует понимать: CVAVR работает с float-ами гораздо оптимальнее прочих компиляторов или ваше высказывание о "простоях" относится ко всем компиляторам, просто вам не довелось с другими поработать?
Это следует понимать как:
1.огромные задержки независимо от компилятора
2.работал с float только в cvavr
Сорри, если неправильно выразился.
Re: Си: перевод результата из типа float в string.
Добавлено: Пт дек 24, 2010 12:59:13
ARV
Slavast писал(а):Sprintf пробовал.
не работает.
а вы включали поддержку
sprintf-ом типа
float? я не зря об этом сказал в своем первом посте: по умолчанию она отключена