Fix hd44780 formatting and add modifications descriptions to files headers
This commit is contained in:
parent
51951fcea1
commit
6dac14ab59
1510
lib/hd44780_111/hd44780.c
Executable file → Normal file
1510
lib/hd44780_111/hd44780.c
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
@ -1,73 +1,75 @@
|
||||
/*****************************************************************************
|
||||
Title : HD44780 Library
|
||||
Author : SA Development
|
||||
Version: 1.11
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef HD44780_H
|
||||
#define HD44780_H
|
||||
|
||||
|
||||
//LCD Commands for HD44780
|
||||
#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: 1=increment, 0=decrement
|
||||
#define LCD_ENTRY_SHIFT 0 // DB0: 1=display shift on
|
||||
|
||||
#define LCD_DISPLAYMODE 3 // DB3: turn lcd/cursor on
|
||||
#define LCD_DISPLAYMODE_ON 2 // DB2: turn display on
|
||||
#define LCD_DISPLAYMODE_CURSOR 1 // DB1: turn cursor on
|
||||
#define LCD_DISPLAYMODE_BLINK 0 // DB0: blinking cursor
|
||||
|
||||
#define LCD_MOVE 4 // DB4: move cursor/display
|
||||
#define LCD_MOVE_DISP 3 // DB3: move display (0-> 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
|
||||
|
||||
#define LCD_BUSY 7 // DB7: LCD is busy
|
||||
|
||||
// LCD columns and rows definitions
|
||||
#define LCD_ROW_1_START 0
|
||||
#define LCD_ROW_2_START 64
|
||||
#define LCD_ROW_1_LAST_VISIBLE_COL 15
|
||||
#define LCD_ROW_1_LAST_COL 39
|
||||
#define LCD_ROW_2_LAST_VISIBLE_COL 79
|
||||
#define LCD_ROW_1_LAST_COL 103
|
||||
#define LCD_COLS_MAX 103
|
||||
#define LCD_VISIBLE_COLS 16
|
||||
|
||||
// Maximum character what can be displayed with 1 byte
|
||||
#define LCD_MAX_CARACTER 255
|
||||
|
||||
|
||||
void lcd_init();
|
||||
void lcd_command(uint8_t cmd);
|
||||
|
||||
void lcd_clrscr();
|
||||
void lcd_clr(uint8_t pos, uint8_t len);
|
||||
void lcd_home();
|
||||
void lcd_goto(uint8_t pos);
|
||||
|
||||
#if RW_LINE_IMPLEMENTED==1
|
||||
uint8_t lcd_getc();
|
||||
#endif
|
||||
|
||||
void lcd_putc(char c);
|
||||
void lcd_puts(const char *s);
|
||||
void lcd_puts_P(const char *progmem_s);
|
||||
#if (LCD_DISPLAYS>1)
|
||||
void lcd_use_display(int ADisplay);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
Title : HD44780 Library
|
||||
Author : SA Development
|
||||
Version: 1.11
|
||||
Modifications for: Arduino Mega 2560
|
||||
Itead Studio Arduino 1602 LED Keypad Shield
|
||||
Modified by: Silver Kits <silver.kits@eesti.ee> October 2016
|
||||
*****************************************************************************/
|
||||
#ifndef HD44780_H
|
||||
#define HD44780_H
|
||||
|
||||
|
||||
//LCD Commands for HD44780
|
||||
#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: 1=increment, 0=decrement
|
||||
#define LCD_ENTRY_SHIFT 0 // DB0: 1=display shift on
|
||||
|
||||
#define LCD_DISPLAYMODE 3 // DB3: turn lcd/cursor on
|
||||
#define LCD_DISPLAYMODE_ON 2 // DB2: turn display on
|
||||
#define LCD_DISPLAYMODE_CURSOR 1 // DB1: turn cursor on
|
||||
#define LCD_DISPLAYMODE_BLINK 0 // DB0: blinking cursor
|
||||
|
||||
#define LCD_MOVE 4 // DB4: move cursor/display
|
||||
#define LCD_MOVE_DISP 3 // DB3: move display (0-> 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
|
||||
|
||||
#define LCD_BUSY 7 // DB7: LCD is busy
|
||||
|
||||
// LCD columns and rows definitions
|
||||
#define LCD_ROW_1_START 0
|
||||
#define LCD_ROW_2_START 64
|
||||
#define LCD_ROW_1_LAST_VISIBLE_COL 15
|
||||
#define LCD_ROW_1_LAST_COL 39
|
||||
#define LCD_ROW_2_LAST_VISIBLE_COL 79
|
||||
#define LCD_ROW_1_LAST_COL 103
|
||||
#define LCD_COLS_MAX 103
|
||||
#define LCD_VISIBLE_COLS 16
|
||||
|
||||
// Maximum character what can be displayed with 1 byte
|
||||
#define LCD_MAX_CARACTER 255
|
||||
|
||||
|
||||
void lcd_init();
|
||||
void lcd_command(uint8_t cmd);
|
||||
|
||||
void lcd_clrscr();
|
||||
void lcd_clr(uint8_t pos, uint8_t len);
|
||||
void lcd_home();
|
||||
void lcd_goto(uint8_t pos);
|
||||
|
||||
#if RW_LINE_IMPLEMENTED==1
|
||||
uint8_t lcd_getc();
|
||||
#endif
|
||||
|
||||
void lcd_putc(char c);
|
||||
void lcd_puts(const char *s);
|
||||
void lcd_puts_P(const char *progmem_s);
|
||||
#if (LCD_DISPLAYS>1)
|
||||
void lcd_use_display(int ADisplay);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,30 +1,38 @@
|
||||
#ifndef HD44780_SETTINGS_H
|
||||
#define HD44780_SETTINGS_H
|
||||
|
||||
#define USE_ADELAY_LIBRARY 0
|
||||
#define LCD_BITS 4
|
||||
#define RW_LINE_IMPLEMENTED 0
|
||||
#define WAIT_MODE 0
|
||||
#define DELAY_RESET 15
|
||||
|
||||
// Pin and port definitions for Arduino Mega 2560
|
||||
#define LCD_DB4_PORT PORTG
|
||||
#define LCD_DB4_PIN 5
|
||||
#define LCD_DB5_PORT PORTE
|
||||
#define LCD_DB5_PIN 3
|
||||
#define LCD_DB6_PORT PORTH
|
||||
#define LCD_DB6_PIN 3
|
||||
#define LCD_DB7_PORT PORTH
|
||||
#define LCD_DB7_PIN 4
|
||||
|
||||
#define LCD_RS_PORT PORTH
|
||||
#define LCD_RS_PIN 5
|
||||
|
||||
#define LCD_DISPLAYS 1
|
||||
|
||||
#define LCD_DISPLAY_LINES 2
|
||||
|
||||
#define LCD_E_PORT PORTH
|
||||
#define LCD_E_PIN 6
|
||||
|
||||
#endif /* HD44780_SETTINGS_H */
|
||||
/*****************************************************************************
|
||||
Title : HD44780 Library
|
||||
Author : SA Development
|
||||
Version: 1.11
|
||||
Modifications for: Arduino Mega 2560
|
||||
Itead Studio Arduino 1602 LED Keypad Shield
|
||||
Modified by: Silver Kits <silver.kits@eesti.ee> October 2016
|
||||
*****************************************************************************/
|
||||
#ifndef HD44780_SETTINGS_H
|
||||
#define HD44780_SETTINGS_H
|
||||
|
||||
#define USE_ADELAY_LIBRARY 0
|
||||
#define LCD_BITS 4
|
||||
#define RW_LINE_IMPLEMENTED 0
|
||||
#define WAIT_MODE 0
|
||||
#define DELAY_RESET 15
|
||||
|
||||
// Pin and port definitions for Arduino Mega 2560
|
||||
#define LCD_DB4_PORT PORTG
|
||||
#define LCD_DB4_PIN 5
|
||||
#define LCD_DB5_PORT PORTE
|
||||
#define LCD_DB5_PIN 3
|
||||
#define LCD_DB6_PORT PORTH
|
||||
#define LCD_DB6_PIN 3
|
||||
#define LCD_DB7_PORT PORTH
|
||||
#define LCD_DB7_PIN 4
|
||||
|
||||
#define LCD_RS_PORT PORTH
|
||||
#define LCD_RS_PIN 5
|
||||
|
||||
#define LCD_DISPLAYS 1
|
||||
|
||||
#define LCD_DISPLAY_LINES 2
|
||||
|
||||
#define LCD_E_PORT PORTH
|
||||
#define LCD_E_PIN 6
|
||||
|
||||
#endif /* HD44780_SETTINGS_H */
|
||||
|
@ -1,66 +1,66 @@
|
||||
#ifndef HD44780_SETTINGS_H
|
||||
#define HD44780_SETTINGS_H
|
||||
|
||||
#define F_CPU 8000000 // Set Clock Frequency
|
||||
|
||||
#define USE_ADELAY_LIBRARY 0 // Set to 1 to use my ADELAY library, 0 to use internal delay functions
|
||||
#define LCD_BITS 4 // 4 for 4 Bit I/O Mode, 8 for 8 Bit I/O Mode
|
||||
#define RW_LINE_IMPLEMENTED 0 // 0 for no RW line (RW on LCD tied to ground), 1 for RW line present
|
||||
#define WAIT_MODE 0 // 0=Use Delay Method (Faster if running <10Mhz)
|
||||
// 1=Use Check Busy Flag (Faster if running >10Mhz) ***Requires RW Line***
|
||||
#define DELAY_RESET 15 // in mS
|
||||
|
||||
#if (LCD_BITS==8) // If using 8 bit mode, you must configure DB0-DB7
|
||||
#define LCD_DB0_PORT PORTC
|
||||
#define LCD_DB0_PIN 0
|
||||
#define LCD_DB1_PORT PORTC
|
||||
#define LCD_DB1_PIN 1
|
||||
#define LCD_DB2_PORT PORTC
|
||||
#define LCD_DB2_PIN 2
|
||||
#define LCD_DB3_PORT PORTC
|
||||
#define LCD_DB3_PIN 3
|
||||
#endif
|
||||
#define LCD_DB4_PORT PORTC // If using 4 bit omde, yo umust configure DB4-DB7
|
||||
#define LCD_DB4_PIN 4
|
||||
#define LCD_DB5_PORT PORTC
|
||||
#define LCD_DB5_PIN 5
|
||||
#define LCD_DB6_PORT PORTC
|
||||
#define LCD_DB6_PIN 6
|
||||
#define LCD_DB7_PORT PORTC
|
||||
#define LCD_DB7_PIN 7
|
||||
|
||||
#define LCD_RS_PORT PORTC // Port for RS line
|
||||
#define LCD_RS_PIN 4 // Pin for RS line
|
||||
|
||||
#define LCD_RW_PORT PORTC // Port for RW line (ONLY used if RW_LINE_IMPLEMENTED=1)
|
||||
#define LCD_RW_PIN 6 // Pin for RW line (ONLY used if RW_LINE_IMPLEMENTED=1)
|
||||
|
||||
#define LCD_DISPLAYS 1 // Up to 4 LCD displays can be used at one time
|
||||
// All pins are shared between displays except for the E
|
||||
// pin which each display will have its own
|
||||
|
||||
// Display 1 Settings - if you only have 1 display, YOU MUST SET THESE
|
||||
#define LCD_DISPLAY_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E_PORT PORTC // Port for E line
|
||||
#define LCD_E_PIN 5 // Pin for E line
|
||||
|
||||
#if (LCD_DISPLAYS>=2) // If you have 2 displays, set these and change LCD_DISPLAYS=2
|
||||
#define LCD_DISPLAY2_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E2_PORT PORTC // Port for E line
|
||||
#define LCD_E2_PIN 5 // Pin for E line
|
||||
#endif
|
||||
|
||||
#if (LCD_DISPLAYS>=3) // If you have 3 displays, set these and change LCD_DISPLAYS=3
|
||||
#define LCD_DISPLAY3_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E3_PORT PORTC // Port for E line
|
||||
#define LCD_E3_PIN 5 // Pin for E line
|
||||
#endif
|
||||
|
||||
#if (LCD_DISPLAYS>=4) // If you have 4 displays, set these and change LCD_DISPLAYS=4
|
||||
#define LCD_DISPLAY4_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E4_PORT PORTC // Port for E line
|
||||
#define LCD_E4_PIN 5 // Pin for E line
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef HD44780_SETTINGS_H
|
||||
#define HD44780_SETTINGS_H
|
||||
|
||||
#define F_CPU 8000000 // Set Clock Frequency
|
||||
|
||||
#define USE_ADELAY_LIBRARY 0 // Set to 1 to use my ADELAY library, 0 to use internal delay functions
|
||||
#define LCD_BITS 4 // 4 for 4 Bit I/O Mode, 8 for 8 Bit I/O Mode
|
||||
#define RW_LINE_IMPLEMENTED 0 // 0 for no RW line (RW on LCD tied to ground), 1 for RW line present
|
||||
#define WAIT_MODE 0 // 0=Use Delay Method (Faster if running <10Mhz)
|
||||
// 1=Use Check Busy Flag (Faster if running >10Mhz) ***Requires RW Line***
|
||||
#define DELAY_RESET 15 // in mS
|
||||
|
||||
#if (LCD_BITS==8) // If using 8 bit mode, you must configure DB0-DB7
|
||||
#define LCD_DB0_PORT PORTC
|
||||
#define LCD_DB0_PIN 0
|
||||
#define LCD_DB1_PORT PORTC
|
||||
#define LCD_DB1_PIN 1
|
||||
#define LCD_DB2_PORT PORTC
|
||||
#define LCD_DB2_PIN 2
|
||||
#define LCD_DB3_PORT PORTC
|
||||
#define LCD_DB3_PIN 3
|
||||
#endif
|
||||
#define LCD_DB4_PORT PORTC // If using 4 bit omde, yo umust configure DB4-DB7
|
||||
#define LCD_DB4_PIN 4
|
||||
#define LCD_DB5_PORT PORTC
|
||||
#define LCD_DB5_PIN 5
|
||||
#define LCD_DB6_PORT PORTC
|
||||
#define LCD_DB6_PIN 6
|
||||
#define LCD_DB7_PORT PORTC
|
||||
#define LCD_DB7_PIN 7
|
||||
|
||||
#define LCD_RS_PORT PORTC // Port for RS line
|
||||
#define LCD_RS_PIN 4 // Pin for RS line
|
||||
|
||||
#define LCD_RW_PORT PORTC // Port for RW line (ONLY used if RW_LINE_IMPLEMENTED=1)
|
||||
#define LCD_RW_PIN 6 // Pin for RW line (ONLY used if RW_LINE_IMPLEMENTED=1)
|
||||
|
||||
#define LCD_DISPLAYS 1 // Up to 4 LCD displays can be used at one time
|
||||
// All pins are shared between displays except for the E
|
||||
// pin which each display will have its own
|
||||
|
||||
// Display 1 Settings - if you only have 1 display, YOU MUST SET THESE
|
||||
#define LCD_DISPLAY_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E_PORT PORTC // Port for E line
|
||||
#define LCD_E_PIN 5 // Pin for E line
|
||||
|
||||
#if (LCD_DISPLAYS>=2) // If you have 2 displays, set these and change LCD_DISPLAYS=2
|
||||
#define LCD_DISPLAY2_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E2_PORT PORTC // Port for E line
|
||||
#define LCD_E2_PIN 5 // Pin for E line
|
||||
#endif
|
||||
|
||||
#if (LCD_DISPLAYS>=3) // If you have 3 displays, set these and change LCD_DISPLAYS=3
|
||||
#define LCD_DISPLAY3_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E3_PORT PORTC // Port for E line
|
||||
#define LCD_E3_PIN 5 // Pin for E line
|
||||
#endif
|
||||
|
||||
#if (LCD_DISPLAYS>=4) // If you have 4 displays, set these and change LCD_DISPLAYS=4
|
||||
#define LCD_DISPLAY4_LINES 2 // Number of Lines, Only Used for Set I/O Mode Command
|
||||
#define LCD_E4_PORT PORTC // Port for E line
|
||||
#define LCD_E4_PIN 5 // Pin for E line
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user