Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

ftoa()
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1971
Страница 1 от 2

Автор:  Цецо [ Чет Мар 09, 2006 7:29 pm ]
Заглавие:  ftoa()

Мисля че преди време имаше такава тема но не мога да я открия.

Трябва ми ftoa() функция. Изхода трябва да е от типа XXXX.YYYY.

Автор:  [ Чет Мар 09, 2006 7:48 pm ]
Заглавие:  Re: ftoa()

Цецо написа:
Мисля че преди време имаше такава тема но не мога да я открия.

Трябва ми ftoa() функция. Изхода трябва да е от типа XXXX.YYYY.


Имам такава за CCS C компилатора. YYYY мисля, че го бях направил да се настройва. Ако те интересува кажи къде да ти я пратя.

Автор:  TheWizard [ Чет Мар 09, 2006 9:09 pm ]
Заглавие: 

Цецо, не мислиш ли, че поставянето на флоат операция и преобразуването и в стринг в микроконтролер е загуба на ресурси...

Автор:  Реконструктор [ Пет Мар 10, 2006 10:11 am ]
Заглавие: 

sprintf с какво не те устройва?

Автор:  Цецо [ Пет Мар 10, 2006 11:01 am ]
Заглавие: 

TheWizard написа:
Цецо, не мислиш ли, че поставянето на флоат операция и преобразуването и в стринг в микроконтролер е загуба на ресурси...


Ами числото(резутата от операцията) си е float, как да го изпиша по друг начин?

Predator, код на CCS не ме урежда. Поне така си мисля. Тоя компилатор е далеч от С стандарта, и ще ми е по трудно да е го пусна на АРМ (за това ми трябва). И аз имам една писана навремето за ПИК, ама по същата причина не ми се занимава с нея.

sprintf незнам моя компилатор (ИАР) дали го подържа, не съм чак толкоз навътре. Със сигурност подържа printf() ама незнам как да пренасоча изходния поток към писан от мен драйвер за LCD.

Автор:  asp [ Пет Мар 10, 2006 11:13 am ]
Заглавие: 

Цецо написа:
TheWizard написа:
Със сигурност подържа printf() ама незнам как да пренасоча изходния поток към писан от мен драйвер за LCD.


и мен ме интересува как се пренасочва поток към драйвер за дисплей някой ако знае ще е яко да го сподели

Автор:  Predator_MF [ Пет Мар 10, 2006 11:42 am ]
Заглавие: 

В CCS е лесно да пренасочиш потока от printf() към каквото поискаш, за сметка на доста програмно пространство (особено в последните версии). На мен също ми е интересно да видя има ли начин да се пренасочи в KEIL и IAR...аз за такъв не се сетих и го написах така в моя KEIL
Код:
  lcd_clear();
  sprintf(c,"value=%d",i);
  lcd_print(c);

....

int lcd_print(char *c){
int i;
for( i=0; i < 100 && c[i] != 0; i++) {
lcd_putc(c[i]);
}
return 0;
}



Автор:  danov [ Пет Мар 10, 2006 12:16 pm ]
Заглавие: 

Тук обсъждахме подбно нещо
http://www.mcu-bg.com/mcu_site/viewtopic.php?t=455&start=0&postdays=0&postorder=asc&highlight=
но за цели числа. Може просто да си умножиш числото по 10,100,1000, ... и да го печаташ по този начин.

Автор:  Реконструктор [ Пет Мар 10, 2006 12:56 pm ]
Заглавие: 

Цецо написа:
sprintf незнам моя компилатор (ИАР) дали го подържа, не съм чак толкоз навътре. Със сигурност подържа printf() ама незнам как да пренасоча изходния поток към писан от мен драйвер за LCD.


Пробвай, де. Ако има printf, почти сигурно ще има и sprintf.

Автор:  TheWizard [ Пет Мар 10, 2006 1:04 pm ]
Заглавие: 

Ако формулите ти не са много сложни опитай както 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);

Автор:  Nikola Kirov [ Пет Мар 10, 2006 2:13 pm ]
Заглавие: 

"sprintf незнам моя компилатор (ИАР) дали го подържа, не съм чак толкоз навътре. Със сигурност подържа printf() ама незнам как да пренасоча изходния поток към писан от мен драйвер за LCD"

поддържа го но трябва да си включиш в проекта функция putch(char in) и вградения printf() ползва нея за да извежда.

Автор:  Цецо [ Пет Мар 10, 2006 3:43 pm ]
Заглавие: 

Да, подържа sprintf, току що установих. Само дето трябва да се включи Large модела за printf. Проекта изведнъж почна да не се събира в РАМ-а. Та сега го пускам от Флаша. Което си е наказание. Ама работи де.

Автор:  Nikola Kirov [ Пет Мар 10, 2006 4:06 pm ]
Заглавие: 

Би трябвало да ти работят всички варианти на printf(). large включва всички възможни преобразувания на входния параметър и затова ти набъбва толкова кода. Ползваи някои от по малките варианти,надали ще ти трябват висички те му глезотии. И как го подкара без да си напишеш функция putch(char in) не ми е ясно. Освен large варианта да добавя и тази функция също и затова да работи. За орязаните варианти се налага сам да си я напишеш тая функция. putch(char in) трябва да изпрати входния си параметър към изхода които ти трябва,някои от сериините портове да кажем.
Така е замислено да работи.

Автор:  Реконструктор [ Пет Мар 10, 2006 4:19 pm ]
Заглавие: 

sprintf е буферна ф-я, няма нужда от putch

Автор:  Nikola Kirov [ Пет Мар 10, 2006 4:42 pm ]
Заглавие: 

Не знам защо така е реализирано и аз се пулих доста. От един готов проект го видях че така става.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/