Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Функции в CVAVR.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
grach41
В “большом” С существуют функции форматированного вывода строк например printf(); ……. Которыми можно классно работать со строками вывода на экран. В CVavr тоже есть такая функция, но как её “подцепить” к LCD я не сообразил. А задача у меня простая, организовать вывод несколько полей переменных с незначившими 0 в впереди на LCD.
Petka
Цитата(grach41 @ Aug 12 2007, 21:17) *
В “большом” С существуют функции форматированного вывода строк например printf(); ……. Которыми можно классно работать со строками вывода на экран. В CVavr тоже есть такая функция, но как её “подцепить” к LCD я не сообразил. А задача у меня простая, организовать вывод несколько полей переменных с незначившими 0 в впереди на LCD.


Легко, для этого надо переопредилить функцию putchar. грубо говоря надо написать:

void putchar(char ch){
lcd_putchar(ch);
}
Quasar
Ну либо:

Код
static void (*rputchar)(unsigned char c);

void rprintfInit(void (*putchar_func)(unsigned char c))
{
    rputchar = putchar_func;
}

void rprintfChar(unsigned char c)
{
    rputchar(c);
}


Тогда при инициализации:

Код
rprintfInit(lcd_putchar);


И печатаем, что хотим smile.gif

Код
rprintfChar('Y');
.
.
.


Так сделано например в AVRlib.
ALexx
Цитата(grach41 @ Aug 12 2007, 20:17) *
В ”большом” С существуют функции форматированного вывода строк например printf(); ……. Которыми можно классно работать со строками вывода на экран. В CVavr тоже есть такая функция, но как её ”подцепить” к LCD я не сообразил. А задача у меня простая, организовать вывод несколько полей переменных с незначившими 0 в впереди на LCD.



Можно в 2 этапа. Предполагается, что у Вас уже есть функции вывода строки на ЖКИ или используются встроенные в CV функции работы с индикатором.

1) Используете библиотечную функцию форматированного вывода в СТРОКУ:
Код
// описание переменных    
unsigned char n;
char str[20];
...............
  n=sprintf(str,"Result=%04d",result);


2) Отправляете n символов строки str на ЖКИ с помощью своей функции. Или используете функцию void lcd_puts(char *str) из библиотеки lcd КодВижна:
Код
lcd_puts(str);
GDI
В CV есть примеры программ, работающих с выводом на ЖКИ, они находятся в папке examples там уже все сделано, надо только изменить пример под собственные нужды.
grach41
Благодарю за помощь.
Пока работает в эмуляторе с функцией sprintf(). Попробую в “железе”.
Сколько раз говорил читайте HELPы и сам нарвался.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.