Работа с ЖКИ на контроллере HD44780 и его аналогах
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Пройтись по цифрам переменной и вывести соответствующие символы.
- Реклама
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Можно, пожалуйста, элементарный пример?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Код: Выделить всё
printf("%f", (readADC(0)*2.56*(15/2.56)/1023) );- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Одно использование printf - и программа вырастает на килобайт.
Я не люблю stdlib в применении с микроконтроллерами.
Я не люблю stdlib в применении с микроконтроллерами.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
А строка tantrum'а чем то отличается от моей ?
Какой, собственно, вопрос, такой и ответ
Какой, собственно, вопрос, такой и ответ
- Реклама
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Не получается вывести
В интернете уже много примеров перепробовал - у меня ничего не выводит на LCD.
Командой printf у меня ничего не выводит вообще
Думаю, все дело в библиотеке, т.к. по написанию команды отличаются.
Вот моя (с которой у меня получилось хоть что-то вывести на дисплей):
В интернете уже много примеров перепробовал - у меня ничего не выводит на LCD.
Командой printf у меня ничего не выводит вообще
Думаю, все дело в библиотеке, т.к. по написанию команды отличаются.
Вот моя (с которой у меня получилось хоть что-то вывести на дисплей):
Код: Выделить всё
#ifndef LCD_LIB
#define LCD_LIB
#include <inttypes.h>
//Uncomment this if LCD 4 bit interface is used
//******************************************
#define LCD_4bit
//***********************************************
#define LCD_RS 0 //define MCU pin connected to LCD RS
#define LCD_RW 1 //define MCU pin connected to LCD R/W
#define LCD_E 2 //define MCU pin connected to LCD E
#define LCD_D4 4 //define MCU pin connected to LCD D3
#define LCD_D5 5 //define MCU pin connected to LCD D4
#define LCD_D6 6 //define MCU pin connected to LCD D5
#define LCD_D7 7 //define MCU pin connected to LCD D6
#define LDP PORTD //define MCU port connected to LCD data pins
#define LCP PORTD //define MCU port connected to LCD control pins
#define LDDR DDRD //define MCU direction register for port connected to LCD data pins
#define LCDR DDRD //define MCU direction register for port connected to LCD control pins
#define LCD_CLR 0 //DB0: clear display
#define LCD_HOME 1 //DB1: return to home position
#define LCD_ENTRY_MODE 2 //DB2: set entry mode
#define LCD_ENTRY_INC 1 //DB1: increment
#define LCD_ENTRY_SHIFT 0 //DB2: shift
#define LCD_ON_CTRL 3 //DB3: turn lcd/cursor on
#define LCD_ON_DISPLAY 2 //DB2: turn display on
#define LCD_ON_CURSOR 1 //DB1: turn cursor on
#define LCD_ON_BLINK 0 //DB0: blinking cursor
#define LCD_MOVE 4 //DB4: move cursor/display
#define LCD_MOVE_DISP 3 //DB3: move display (0-> move cursor)
#define LCD_MOVE_RIGHT 2 //DB2: move right (0-> left)
#define LCD_FUNCTION 5 //DB5: function set
#define LCD_FUNCTION_8BIT 4 //DB4: set 8BIT mode (0->4BIT mode)
#define LCD_FUNCTION_2LINES 3 //DB3: two lines (0->one line)
#define LCD_FUNCTION_10DOTS 2 //DB2: 5x10 font (0->5x7 font)
#define LCD_CGRAM 6 //DB6: set CG RAM address
#define LCD_DDRAM 7 //DB7: set DD RAM address
// reading:
#define LCD_BUSY 7 //DB7: LCD is busy
#define LCD_LINES 2 //visible lines
#define LCD_LINE_LENGTH 16 //line length (in characters)
// cursor position to DDRAM mapping
#define LCD_LINE0_DDRAMADDR 0x00
#define LCD_LINE1_DDRAMADDR 0x40
#define LCD_LINE2_DDRAMADDR 0x14
#define LCD_LINE3_DDRAMADDR 0x54
// progress bar defines
#define PROGRESSPIXELS_PER_CHAR 6
void lcd_dat(uint8_t); //forms data ready to send to 74HC164
void lcd_com(uint8_t); //forms data ready to send to 74HC164
void lcd_init(void); //Initializes LCD
void lcd_clr(void); //Clears LCD
void lcd_home(void); //LCD cursor home
void lcd_string(uint8_t*, uint8_t); //Outputs string to LCD
void lcd_gotoxy(uint8_t, uint8_t); //Cursor to X Y position
void copy_string_to_lcd(const uint8_t*, uint8_t, uint8_t);//copies flash string to LCD at x,y
void lcd_definechar(const uint8_t *,uint8_t);//write char to LCD CGRAM
void lcd_shift_right(uint8_t); //shift by n characters Right
void lcd_shift_left(uint8_t); //shift by n characters Left
void lcd_cursor_on(void); //Underline cursor ON
void lcd_cursor_blink(void); //Underline blinking cursor ON
void lcd_cursor_off(void); //Cursor OFF
void lcd_blank(void); //LCD blank but not cleared
void lcd_visible(void); //LCD visible
void lcd_cursor_left(uint8_t); //Shift cursor left by n
void lcd_cursor_right(uint8_t); //shif cursor right by n
void lcd_progress_bar(uint8_t progress, uint8_t maxprogress, uint8_t length);
#endif
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Я же вам давал ссылку, еще и благодарили... пользуйтесь printf в полном объёме!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Так вы мне давали пример просто вывода текста, я же подумал, что она заработает у меня, поэтому и благодарил
Но оказывается моя библиотека не знает, что такое printf.
Но оказывается моя библиотека не знает, что такое printf.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Да разбейте вы число на цифры (деление на 10) и выведите их посимвольно. Напишите свою функцию для этого. Тот же (s)printf делает ровно то же, только он сильно навороченный для этой мелкой функции, и его использование кушает много flash-памяти.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
В какой-то соседней теме уже разжовывали этот алгоритм. Вычитаем сотни пока число не станет меньше 100 - в результате получаем количество сотен, потом вычитаем 10 пока число не станет меньше 10 - получаем количество десятков... ну и в остатке остается количество единиц. Всё очень просто.
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Та блин я уже не знаю что делать, в библиотеке нифига нет, никаких команд. И как тут вывести что-либо....
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
А они должны быть? тебе уже говорили вроде бы про printf - если надо все и сразу - пользуйся, если не устраивает напиши свою и поделись с народом.
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
tantrum писал(а):Но оказывается моя библиотека не знает, что такое printf.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Так используй ту что знает, либо дописывай свои функции(что более выгодно в перспективе).
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Нашел.Alexeyslav писал(а):Так используй ту что знает
Библиотека LCD AVR Studio6.2
Подскажите, пожалуйста, библиотеку под шестую студию для LCD с контроллером KS0066U.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Библиотека LCD AVR Studio6.2
в приложениях к статье
http://www.simple-devices.ru/articles/7 ... -interface
http://www.simple-devices.ru/articles/7 ... -interface
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Библиотека LCD AVR Studio6.2
К сожалению эта библиотека в шестой студии не компилируется
...
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Библиотека LCD AVR Studio6.2
а пример от самого производителя из документации на компилятор попробовать: ..\doc\avr-libc\avr-libc-user-manual\group__stdiodemo.html
взять тут можно http://www.nongnu.org/avr-libc/examples/stdiodemo/
upd проверил - отлично работает:

взять тут можно http://www.nongnu.org/avr-libc/examples/stdiodemo/
upd проверил - отлично работает:

Re: Библиотека LCD AVR Studio6.2
Спасибо.
А нет ли у вас готового проекта?
А нет ли у вас готового проекта?


