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

 
 
 
Reply to this topicStart new topic
> Функции в CVAVR., Я не программист, я только учусь
grach41
сообщение Aug 12 2007, 17:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 13-05-06
Пользователь №: 17 050



В “большом” С существуют функции форматированного вывода строк например printf(); ……. Которыми можно классно работать со строками вывода на экран. В CVavr тоже есть такая функция, но как её “подцепить” к LCD я не сообразил. А задача у меня простая, организовать вывод несколько полей переменных с незначившими 0 в впереди на LCD.

Сообщение отредактировал grach41 - Aug 12 2007, 17:19
Go to the top of the page
 
+Quote Post
Petka
сообщение Aug 12 2007, 17:35
Сообщение #2


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



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


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

void putchar(char ch){
lcd_putchar(ch);
}
Go to the top of the page
 
+Quote Post
Quasar
сообщение Aug 12 2007, 19:16
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Ну либо:

Код
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.
Go to the top of the page
 
+Quote Post
ALexx
сообщение Aug 13 2007, 07:11
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 22-09-04
Из: Burbach, Germany
Пользователь №: 704



Цитата(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);
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 13 2007, 07:42
Сообщение #5


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



В CV есть примеры программ, работающих с выводом на ЖКИ, они находятся в папке examples там уже все сделано, надо только изменить пример под собственные нужды.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
grach41
сообщение Aug 13 2007, 17:05
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 13-05-06
Пользователь №: 17 050



Благодарю за помощь.
Пока работает в эмуляторе с функцией sprintf(). Попробую в “железе”.
Сколько раз говорил читайте HELPы и сам нарвался.
Go to the top of the page
 
+Quote Post

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

 


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


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