Отговори на тема  [ 2 мнения ] 
Microchip C32 - printf, sprintf 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение Microchip C32 - printf, sprintf
Та изпаднах в ситуацията да се радвам на микрочепски творения отново. Положението е следното: имам един код за pic32, версията на компилатора мисля е 1.12, кода е пълен с printf, sprintf. По дефоут те са насочени към UART1 и UART2 мисля, като това ми е ясно как мога да го превключвам, но не ми върши работа - трябва ми към друг UART. Ок, те могат да бъдат предефинирани от потребителя - слънце, направих го с va_ ... , сега принтвам към UART4. Обаче printf не се справя с %s. За всичко друго е ок - %c, %d, %x, %f - наред са. Обаче като му дам %s и .... ами нищо? минава си през функцията като пръдня през комарник - малко забавя и това е, на терминала липсва каквото и да е. А по-тъпото е, че като предефинирам printf логично не мога да го дебъгна, т.е. не се влиза в него, просто се изпълнява ":)" . Тоя тип издънаки някой да ги е срещал и да има решение?
Трябва ми да мога да изпълня нещо от типа:

Код:
sprintf(buf, "bla-bla-bla %d, %d, %d !", i, j, k)
printf("String: %s, data value: %d, code: %x", buf, data_val, code_val); // където buf е масив с нещо


Примера е ясно, че е безсмислен, но не ми казвайте да ползвам нещо друго лично изписано вместо (s)printf - то идеята е да го пренапиша и се замества в кодовете.

Можеш ли да имаш 6 UART-а и да поддържаш софтуерно само 2, като е ясно, че за останалите 4 просто сменяш цифри?! Мързел ли им е да довършват нещата, какво ли ...

Edit: Ама и аз както обяснявам - за опити вместо функцията printf/sprintf използвам my_printf/my_sprintf т.е. еквивалента на оригиналните (като аргументи и държание) и явно е напълно функционална и за %s. Обаче явно не успявам да предефинирам както си трябва printf/sprinf, защото продължава да ползва тях вместо моята и за това имаше заблуда, че стринга не го изкарава, а то нищо не е изкарвало - текста с параметри идва от моите функции ... мда ... Как става това безболезнено?


Съб Сеп 17, 2011 12:05 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение Re: Microchip C32 - printf, sprintf
За незнающите като мен:

Код:
int my_printf(const char * fmt, ...);
int my_sprintf(char * buf, const char * fmt, ...);

#if defined(printf)
  #undef printf
#endif
#define printf       my_printf

#if defined(sprintf)
  #undef sprintf
#endif
#define sprintf      my_sprintf


колко просто било, след като човек си напише my_printf / my_sprintf чрез va_ ...
Ама докато открия топлата вода ...


Съб Сеп 17, 2011 2:11 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 2 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни