реклама на сайте
подробности

 
 
> printf и несколько UART
dimka76
сообщение Oct 25 2007, 10:45
Сообщение #1


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Когда изпользуетс вывод через один UART все понятно, пишем свою putchar.
А если требуется работать с несколькими UART и еще SPI, TWI и во всех случаях использовать printf, как быть в этом случае?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Oct 25 2007, 11:01
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(dimka76 @ Oct 25 2007, 13:45) *
Когда изпользуетс вывод через один UART все понятно, пишем свою putchar.
А если требуется работать с несколькими UART и еще SPI, TWI и во всех случаях использовать printf, как быть в этом случае?

putchar можно сделать зависимым от какого-то глобального флага, e.g.
Код
U8 DevConOut = 0;

int putchar( int ch)
{
    switch( DevConOut )
    {
      case DEV_UART0:
          ....
          break;
      case DEV_UART1:
          ....
          break;
      case DEV_SPI:
          ...
          break;
      default:
          ...
          break;
    }
}
printf заменить макросом:
Код
#define my_printf( conout,  x ) do \
    {\
        DevConOut = (conout);\
        printf (x);\
    } while (0)

который использовать например так:
Код
my_printf( DEV_UART1, ("hello"));
my_printf( DEV_SPI, ("hello"));
Обрамлять второй параметр my_printf в скобочки - обязательно!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 10:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016