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

 
 
> 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
Ответов
prottoss
сообщение Oct 25 2007, 11:03
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Ну, а уж если все таки приспичило, можно в putchar ввести глобальный флаг и переключать его в функции, которая вызывает printf, и которая знает, в какой интерфейс будет идти сообщение...
Код
char g_putcharMode = 0;
...
int putchar(int c)
{    
     switch(g_putcharMode)
     {
            case USART0_MSG:
            ...
            break;

            case USART1_MSG:
            ...
            break;

            case SPI_MSG:
            ...
            break;

             ...
     }

      return 0;
}


--------------------
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 25 2007, 11:14
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(prottoss @ Oct 25 2007, 15:03) *
Ну, а уж если все таки приспичило, можно в putchar ввести глобальный флаг и переключать его в функции, которая вызывает printf, и которая знает, в какой интерфейс будет идти сообщение...

Можно, конечно, и так, но, только вывод в UART, SPI, TWI нельзя будет осуществлять одновременно. Правда, мне не понятно зачем вывод с помощью printf автору вопроса потребовался во все эти устройства. Да, и вообще, printf - слишком тяжелая для микроконтроллеров функция (как правильно указал prottoss), без которой во многих случаях можно обойтись.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Oct 25 2007, 11:40
Сообщение #4


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Палыч @ Oct 25 2007, 15:14) *
Можно, конечно, и так, но, только вывод в UART, SPI, TWI нельзя будет осуществлять одновременно. Правда, мне не понятно зачем вывод с помощью printf автору вопроса потребовался во все эти устройства. Да, и вообще, printf - слишком тяжелая для микроконтроллеров функция (как правильно указал prottoss), без которой во многих случаях можно обойтись.

Мне кажется, функция printf используется:
1. Чаще всего для отладки. Терминал всегда один. Одновременно посылать никогда не надо. Иногда надо переключить UART (очень редко).
2. Внутри в самодельных пультов управления. Вобще не имеет отношения к поднятому вопросу. Удобнее использовать sprinf.
PS. Проблема носит теоретический характер. smile.gif
Go to the top of the page
 
+Quote Post



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

 


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


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