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

 
 
> ATmega128, printf()
mjpronin
сообщение Feb 13 2010, 14:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 26-01-10
Пользователь №: 55 071



Всем доброе время суток.

Работаю с Atmega128 использую UART1 (т.е. второй из двух) использую putchar() & getchar() для UART1 (т.е. работаю с UDR1) без проблем.

Подскажите как работать с printf() через UART1, так как с UART1 эта функция не работает, а она очень удобна.

На других Atmega** с одним UART printf() работает.


1. Каким образом переопределить printf для работы с UART1
2. Будет ли printf работать с UART0
3. Не приведет ли использование UART0 на ATmega128 к проблемам, т.к. эти ноги у ATmega128 совпадают с ногами последовательного программирования. PDI PDO

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mjpronin
сообщение Feb 14 2010, 06:48
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 26-01-10
Пользователь №: 55 071



Может быть тогда кто-нибудь подскажет каким образом данная проблема может быть решена в другом компиляторе?
Разумеется Stdio.h подключен (иначе была бы ошибка и проет бы не компелился), я подозреваю, что все дело только в том, что printf определен только для работы с UART0.


3. Не приведет ли использование UART0 на ATmega128 к проблемам, т.к. эти ноги у ATmega128 совпадают с ногами последовательного программирования. PDI PDO
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Feb 14 2010, 09:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(mjpronin @ Feb 14 2010, 09:48) *
Может быть тогда кто-нибудь подскажет каким образом данная проблема может быть решена в другом компиляторе?

Я предполагаю, что в любом компиляторе printf использует putchar, который Вы написали. Если putchar работает с UART1 при самостоятельном вызове, и не работает при вызове printf, то возможны варианты
1) printf использует какой-то другой putchar, мертвый (уж не знаю как, сами думайте, возможно ли это)
2) putchar написан так, что при отправке больше одного символа не работает(например, нет проверки готовности передатчика).
Если Вы озабочены совмещением функций выводов, то появляется сомнение в том, что Ваш putchar вообще корректно работает.
Отправьте с помощью Вашего putchar строку и убедитесь, что он работает, а потом уже решайте проблему printf.
Успехов wink.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:12
Рейтинг@Mail.ru


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