| Автор |
Съобщение |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 ftoa()
Мисля че преди време имаше такава тема но не мога да я открия.
Трябва ми ftoa() функция. Изхода трябва да е от типа XXXX.YYYY.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Мар 09, 2006 7:29 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 Re: ftoa()
Имам такава за CCS C компилатора. YYYY мисля, че го бях направил да се настройва. Ако те интересува кажи къде да ти я пратя.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Чет Мар 09, 2006 7:48 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
Цецо, не мислиш ли, че поставянето на флоат операция и преобразуването и в стринг в микроконтролер е загуба на ресурси...
|
| Чет Мар 09, 2006 9:09 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
sprintf с какво не те устройва?
|
| Пет Мар 10, 2006 10:11 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ами числото(резутата от операцията) си е float, как да го изпиша по друг начин?
Predator, код на CCS не ме урежда. Поне така си мисля. Тоя компилатор е далеч от С стандарта, и ще ми е по трудно да е го пусна на АРМ (за това ми трябва). И аз имам една писана навремето за ПИК, ама по същата причина не ми се занимава с нея.
sprintf незнам моя компилатор (ИАР) дали го подържа, не съм чак толкоз навътре. Със сигурност подържа printf() ама незнам как да пренасоча изходния поток към писан от мен драйвер за LCD.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Мар 10, 2006 11:01 am |
|
 |
|
asp
Ранг: Популярен
Регистриран на: Сря Фев 22, 2006 6:27 pm Мнения: 376 Местоположение: plovdiv
|
и мен ме интересува как се пренасочва поток към драйвер за дисплей някой ако знае ще е яко да го сподели
|
| Пет Мар 10, 2006 11:13 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
В CCS е лесно да пренасочиш потока от printf() към каквото поискаш, за сметка на доста програмно пространство (особено в последните версии). На мен също ми е интересно да видя има ли начин да се пренасочи в KEIL и IAR...аз за такъв не се сетих и го написах така в моя KEIL
|
| Пет Мар 10, 2006 11:42 am |
|
 |
|
danov
Ранг: Минаващ
Регистриран на: Вто Ное 16, 2004 4:43 pm Мнения: 85 Местоположение: София
|
Тук обсъждахме подбно нещо
http://www.mcu-bg.com/mcu_site/viewtopic.php?t=455&start=0&postdays=0&postorder=asc&highlight=
но за цели числа. Може просто да си умножиш числото по 10,100,1000, ... и да го печаташ по този начин.
|
| Пет Мар 10, 2006 12:16 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Пробвай, де. Ако има printf, почти сигурно ще има и sprintf.
|
| Пет Мар 10, 2006 12:56 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
Ако формулите ти не са много сложни опитай както danov казва да ги преубразуваш във Integer умножени по 10,100...
Мисля че ще спестиш доста ресурси
иначе пренасочване - пример от IDE симулация dsPIC read/write file
#include <stdio.h> /* Required for printf */
UINT8 raw[IMAGE_WIDTH * IMAGE_HEIGHT];
UINT8 jpg[IMAGE_WIDTH * IMAGE_HEIGHT];
FILE *f;
f = fopen ("400.yuv", "rb");
fread (raw, 1, IMAGE_WIDTH * IMAGE_HEIGHT, f);
fclose (f);
...
f = fopen ("400.jpg", "wb");
fwrite (jpg, 1, Len, f);
fclose (f);
|
| Пет Мар 10, 2006 1:04 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
"sprintf незнам моя компилатор (ИАР) дали го подържа, не съм чак толкоз навътре. Със сигурност подържа printf() ама незнам как да пренасоча изходния поток към писан от мен драйвер за LCD"
поддържа го но трябва да си включиш в проекта функция putch(char in) и вградения printf() ползва нея за да извежда.
|
| Пет Мар 10, 2006 2:13 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Да, подържа sprintf, току що установих. Само дето трябва да се включи Large модела за printf. Проекта изведнъж почна да не се събира в РАМ-а. Та сега го пускам от Флаша. Което си е наказание. Ама работи де.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Мар 10, 2006 3:43 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Би трябвало да ти работят всички варианти на printf(). large включва всички възможни преобразувания на входния параметър и затова ти набъбва толкова кода. Ползваи някои от по малките варианти,надали ще ти трябват висички те му глезотии. И как го подкара без да си напишеш функция putch(char in) не ми е ясно. Освен large варианта да добавя и тази функция също и затова да работи. За орязаните варианти се налага сам да си я напишеш тая функция. putch(char in) трябва да изпрати входния си параметър към изхода които ти трябва,някои от сериините портове да кажем.
Така е замислено да работи.
|
| Пет Мар 10, 2006 4:06 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
sprintf е буферна ф-я, няма нужда от putch
|
| Пет Мар 10, 2006 4:19 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Не знам защо така е реализирано и аз се пулих доста. От един готов проект го видях че така става.
|
| Пет Мар 10, 2006 4:42 pm |
|
|