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

 
 
> Оператор "printf" и функция "putchar" для работы с символьным LCD
Буратино
сообщение Mar 19 2010, 11:47
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



не понимаю, что за беда с выводом.
Прописал "putchar" в виде:
Код
void putchar( char c ) {
    if ( !c )
    return( 0 );
    Transmit_Byte( c );  /*функция отправки сообщения в последовательный порт*/
}


LCD оснащен контроллером, который принимает данные по последовательному порту и выводит на экран дисплея 16*02
Не могу разобраться почему:

printf("%a", 30.0) выводит "???"
printf("%.2A", 30.0) выводит "???"
printf("%c", 'a') ничего выводит
printf("<%3c|%-3c>", 'a', 'b') выводит "< крокозябра >"
и т.д. совсем другими словами не то что я ожидаю.

printf("Hello World!") выводит "Hello World!", но если использовать длинную строку или несколько операторов "printf" со строками, то выводятся куски строк в хаотичном порядке.
размер Data Stack в компиляторе IAR установил в 0x300.

Мне нужно выводить на экран простые конструкции состоящие из текста и числовых данных, что делать? smile.gif

Сообщение отредактировал Буратино - Mar 19 2010, 12:46


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Буратино
сообщение Mar 19 2010, 15:59
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



zltigo ,почему Вы такой злой? Ну нет желания помочь - ну и не нужно! В конце-концов весь мир не вокруг одного Вашего мизинчика вращается.
Я достаточно обеспеченный человек, чтобы позволить себе заниматься электроникой в качестве хобби, и достаточно самостоятельный человек, чтобы разобраться, чем мне в жизни увлекаться.

Уарт настроен на baud rate: 115200, char size: 8 bit, parity: Disabled
Вот код функций:
Код
#define UART_TX_BUFFER_SIZE0 64
#define UART_TX_BUFFER_MASK0 ( UART_TX_BUFFER_SIZE0 - 1 )

static unsigned char UART_TxBuf0[UART_TX_BUFFER_SIZE0];
static volatile unsigned char UART_TxHead0;
static volatile unsigned char UART_TxTail0;

void Transmit_Byte( unsigned char data0 ) {
    unsigned char tmphead0;

    tmphead0 = ( UART_TxHead0 + 1 ) & UART_TX_BUFFER_MASK0;
    while ( tmphead0 == UART_TxTail0 );
    UART_TxBuf0[tmphead0] = data0;
    UART_TxHead0 = tmphead0;
    UCSR0B |= (1<<UDRIE0);
}


#pragma vector=USART_UDRE_vect
__interrupt void USART0_TX_interrupt( void ) {
    unsigned char tmptail0;

    if ( UART_TxHead0 != UART_TxTail0 ) {
        tmptail0 = ( UART_TxTail0 + 1 ) & UART_TX_BUFFER_MASK0;
    UART_TxTail0 = tmptail0;
    UDR0=UART_TxBuf0[tmptail0];
    }
    else {
    UCSR0B &= ~(1<<UDRIE0);
    }
}


Повторяю, функция printf() выводит короткий текст типа "Hello World!", что само по себе свидетельство правильной работы UART, ведь данные были переданы и приняты процессорами.

Сообщение отредактировал Буратино - Mar 19 2010, 16:13


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 19 2010, 16:34
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Буратино @ Mar 19 2010, 18:59) *
zltigo ,почему Вы такой злой?

Что-бы больше разбирались сами, и меньше загадывали шарады.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Буратино   Оператор "printf" и функция "putchar" для работы с символьным LCD   Mar 19 2010, 11:47
- - barabek   Цитата(Буратино @ Mar 19 2010, 21:47) pri...   Mar 19 2010, 12:09
- - Буратино   printf("%f", 30.0); выводит "0.0000...   Mar 19 2010, 12:12
- - zltigo   Цитата(Буратино @ Mar 19 2010, 14:47) Про...   Mar 19 2010, 12:34
- - Буратино   А почему эта функция не putchar()? --- Буратино ...   Mar 19 2010, 12:43
|- - zltigo   Цитата(Буратино @ Mar 19 2010, 15:43) А п...   Mar 19 2010, 12:46
|- - Буратино   Цитата(zltigo @ Mar 19 2010, 15:46) А вот...   Mar 19 2010, 12:51
- - Буратино   Пересмотрел форум, и понял ,что функция printf() ...   Mar 19 2010, 15:36
|- - zltigo   Цитата(Буратино @ Mar 19 2010, 18:36) Я у...   Mar 19 2010, 15:49
- - one_eight_seven   А в контроллер уже зашиты ASCII коды? Может, я не...   Mar 19 2010, 15:49
- - Буратино   Все, разобрался (хотя и остались некоторые непонят...   Mar 19 2010, 18:20
|- - zltigo   Цитата(Буратино @ Mar 19 2010, 21:20) Все...   Mar 19 2010, 18:37
|- - Буратино   Цитата(zltigo @ Mar 19 2010, 21:37) Некош...   Mar 19 2010, 18:45
||- - zltigo   Цитата(Буратино @ Mar 19 2010, 21:45) Что...   Mar 19 2010, 18:52
|- - Сергей Борщ   Цитата(zltigo @ Mar 19 2010, 20:37) Некош...   Mar 19 2010, 21:20
|- - zltigo   Цитата(Сергей Борщ @ Mar 20 2010, 00:20) ...   Mar 19 2010, 21:53
|- - Сергей Борщ   Цитата(zltigo @ Mar 19 2010, 23:53) Свобо...   Mar 20 2010, 09:54
||- - zltigo   Цитата(Сергей Борщ @ Mar 20 2010, 12:54) ...   Mar 20 2010, 10:34
||- - Сергей Борщ   Цитата(zltigo @ Mar 20 2010, 12:34) Очень...   Mar 20 2010, 11:11
||- - zltigo   Цитата(Сергей Борщ @ Mar 20 2010, 14:08) ...   Mar 20 2010, 11:14
|||- - Сергей Борщ   Цитата(zltigo @ Mar 20 2010, 13:14) При н...   Mar 20 2010, 15:08
|||- - zltigo   Цитата(Сергей Борщ @ Mar 20 2010, 18:08) ...   Mar 20 2010, 15:35
||- - ReAl   Цитата(Сергей Борщ @ Mar 20 2010, 13:11) ...   Mar 20 2010, 18:38
||- - zltigo   Цитата(Сергей Борщ @ Mar 20 2010, 14:11) ...   Mar 20 2010, 18:51
|- - Сергей Борщ   Цитата(zltigo @ Mar 20 2010, 01:08) Абсол...   Apr 20 2010, 21:59
|- - zltigo   Цитата(Сергей Борщ @ Apr 21 2010, 00:00) ...   Apr 20 2010, 22:13
||- - Сергей Борщ   Цитата(zltigo @ Apr 21 2010, 01:28) Это п...   Apr 21 2010, 07:31
||- - ReAl   Цитата(zltigo @ Apr 21 2010, 01:28) Это п...   Apr 24 2010, 21:28
|- - zltigo   Цитата(Сергей Борщ @ Apr 21 2010, 00:14) ...   Apr 24 2010, 22:39
- - sonycman   Кстати, можно вопрос по поводу UARTов микроконтрол...   Mar 20 2010, 12:57
|- - zltigo   Цитата(sonycman @ Mar 20 2010, 15:57) В о...   Mar 20 2010, 13:10
|- - sonycman   Цитата(zltigo @ Mar 20 2010, 17:10) Пальц...   Mar 20 2010, 14:00
|- - zltigo   Цитата(sonycman @ Mar 20 2010, 17:00) У В...   Mar 20 2010, 14:41
- - Буратино   RE: Оператор "printf" и функция "putchar" для работы с символьным LCD   Mar 20 2010, 16:49
- - zltigo   Цитата(Буратино @ Mar 20 2010, 19:49) А ...   Mar 20 2010, 17:01


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

 


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


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