Refactor naming to be more consistent
Change the name of the following functions: writeLCDNibble_ -> writeLCDDBusNibble_ writeLCDByte_ -> writeLCDDBusByte_ Created a function 'writeLCDDBusByte' which waits for the busy flag (BF) to be cleared and then writes the given 8-bit integer to the LCD data bus regardless of the mode the LCD is operating in (default (8-bit mode), 8-bit arbitrary pin mode, or 4-bit mode). Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
This commit is contained in:
parent
7c18941836
commit
7977f14d5a
41
lcdLib.c
41
lcdLib.c
@ -91,7 +91,7 @@ void loop_until_LCD_BF_clear(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FOUR_BIT_MODE
|
#ifdef FOUR_BIT_MODE
|
||||||
void writeLCDNibble_(uint8_t b) {
|
void writeLCDDBusNibble_(uint8_t b) {
|
||||||
// Reset data lines to zeros
|
// Reset data lines to zeros
|
||||||
LCD_DBUS7_PORT &= ~(1 << LCD_DBUS7);
|
LCD_DBUS7_PORT &= ~(1 << LCD_DBUS7);
|
||||||
LCD_DBUS6_PORT &= ~(1 << LCD_DBUS6);
|
LCD_DBUS6_PORT &= ~(1 << LCD_DBUS6);
|
||||||
@ -109,10 +109,10 @@ void writeLCDNibble_(uint8_t b) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void writeLCDByte_(uint8_t b) {
|
void writeLCDDBusByte_(uint8_t b) {
|
||||||
#ifdef FOUR_BIT_MODE
|
#ifdef FOUR_BIT_MODE
|
||||||
writeLCDNibble_(b);
|
writeLCDDBusNibble_(b);
|
||||||
writeLCDNibble_(b << 4);
|
writeLCDDBusNibble_(b << 4);
|
||||||
#elif defined (EIGHT_BIT_ARBITRARY_PIN_MODE)
|
#elif defined (EIGHT_BIT_ARBITRARY_PIN_MODE)
|
||||||
// Reset data lines to zeros
|
// Reset data lines to zeros
|
||||||
LCD_DBUS7_PORT &= ~(1 << LCD_DBUS7);
|
LCD_DBUS7_PORT &= ~(1 << LCD_DBUS7);
|
||||||
@ -141,22 +141,22 @@ void writeLCDByte_(uint8_t b) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void writeLCDDBusByte(uint8_t b) {
|
||||||
|
loop_until_LCD_BF_clear(); // Wait until LCD is ready for new instructions
|
||||||
|
writeLCDDBusByte_(b);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Sets RS=RW=0 and writes the given 8 bit integer to the LCD databus. In the default 8-bit mode
|
Sets RS=RW=0 and writes the given 8 bit integer to the LCD databus. In the default 8-bit mode
|
||||||
and EIGHT_BIT_ARBITRARY_PIN_MODE, the given data is written in one cycle using the
|
and EIGHT_BIT_ARBITRARY_PIN_MODE, the given data is written in one cycle using the
|
||||||
writeLCDByte_ function. In FOUR_BIT_MODE however, the given data is written in two cycles
|
writeLCDDBusByte_ function. In FOUR_BIT_MODE however, the given data is written in two cycles
|
||||||
using two successive calls to the writeLCDNibble_ function.
|
using two successive calls to the writeLCDDBusNibble_ function.
|
||||||
*/
|
*/
|
||||||
void writeLCDInstr_(uint8_t instr) {
|
void writeLCDInstr_(uint8_t instr) {
|
||||||
LCD_RS_PORT &= ~(1 << LCD_RS); // RS=0
|
LCD_RS_PORT &= ~(1 << LCD_RS); // RS=0
|
||||||
LCD_RW_PORT &= ~(1 << LCD_RW); // RW=0
|
LCD_RW_PORT &= ~(1 << LCD_RW); // RW=0
|
||||||
|
|
||||||
#ifdef FOUR_BIT_MODE
|
writeLCDDBusByte_(instr);
|
||||||
writeLCDNibble_(instr);
|
|
||||||
writeLCDNibble_(instr << 4);
|
|
||||||
#else
|
|
||||||
writeLCDByte_(instr);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeLCDInstr(uint8_t instr) {
|
void writeLCDInstr(uint8_t instr) {
|
||||||
@ -167,19 +167,14 @@ void writeLCDInstr(uint8_t instr) {
|
|||||||
/*
|
/*
|
||||||
Sets RS=1, RW=0 and accepts a char (8 bit) and outputs it to the current cursor position of
|
Sets RS=1, RW=0 and accepts a char (8 bit) and outputs it to the current cursor position of
|
||||||
the LCD. In the default 8-bit mode and EIGHT_BIT_ARBITRARY_PIN_MODE, the given data is
|
the LCD. In the default 8-bit mode and EIGHT_BIT_ARBITRARY_PIN_MODE, the given data is
|
||||||
written in one cycle using the writeLCDByte_ function. In FOUR_BIT_MODE however, the given
|
written in one cycle using the writeLCDDBusByte_ function. In FOUR_BIT_MODE however, the given
|
||||||
data is written in two cycles using two successive calls to the writeLCDNibble_ function.
|
data is written in two cycles using two successive calls to the writeLCDDBusNibble_ function.
|
||||||
*/
|
*/
|
||||||
void writeCharToLCD_(char c) {
|
void writeCharToLCD_(char c) {
|
||||||
LCD_RS_PORT |= (1 << LCD_RS); // RS=1
|
LCD_RS_PORT |= (1 << LCD_RS); // RS=1
|
||||||
LCD_RW_PORT &= ~(1 << LCD_RW); // RW=0
|
LCD_RW_PORT &= ~(1 << LCD_RW); // RW=0
|
||||||
|
|
||||||
#ifdef FOUR_BIT_MODE
|
writeLCDDBusByte_(c);
|
||||||
writeLCDNibble_(c);
|
|
||||||
writeLCDNibble_(c << 4);
|
|
||||||
#else
|
|
||||||
writeLCDByte_(c);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -710,9 +705,9 @@ static inline void softwareLCDInitPulse(void) {
|
|||||||
LCD_RW_PORT &= ~(1 << LCD_RW); // RW=0
|
LCD_RW_PORT &= ~(1 << LCD_RW); // RW=0
|
||||||
|
|
||||||
#ifdef FOUR_BIT_MODE
|
#ifdef FOUR_BIT_MODE
|
||||||
writeLCDNibble_(CMD_INIT);
|
writeLCDDBusNibble_(CMD_INIT);
|
||||||
#else
|
#else
|
||||||
writeLCDByte_(CMD_INIT);
|
writeLCDDBusByte_(CMD_INIT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -731,7 +726,7 @@ void initLCD (void) {
|
|||||||
|
|
||||||
#if defined (FOUR_BIT_MODE)
|
#if defined (FOUR_BIT_MODE)
|
||||||
// Function Set (4-bit interface; 2 lines with 5x7 dot character font)
|
// Function Set (4-bit interface; 2 lines with 5x7 dot character font)
|
||||||
writeLCDNibble_(CMD_INIT_FOUR_BIT);
|
writeLCDDBusNibble_(CMD_INIT_FOUR_BIT);
|
||||||
writeLCDInstr_(CMD_INIT_FOUR_BIT | (1 << INSTR_FUNC_SET_N));
|
writeLCDInstr_(CMD_INIT_FOUR_BIT | (1 << INSTR_FUNC_SET_N));
|
||||||
#else
|
#else
|
||||||
// Function set (8-bit interface; 2 lines with 5x7 dot character font)
|
// Function set (8-bit interface; 2 lines with 5x7 dot character font)
|
||||||
|
10
lcdLib.h
10
lcdLib.h
@ -94,7 +94,7 @@ void loop_until_LCD_BF_clear(void);
|
|||||||
Note: this is only defined in FOUR_BIT_MODE
|
Note: this is only defined in FOUR_BIT_MODE
|
||||||
*/
|
*/
|
||||||
#ifdef FOUR_BIT_MODE
|
#ifdef FOUR_BIT_MODE
|
||||||
void writeLCDNibble_(uint8_t);
|
void writeLCDDBusNibble_(uint8_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -103,7 +103,13 @@ void writeLCDNibble_(uint8_t);
|
|||||||
This function does not ensure the LCD is ready to accept new data and thus needs to
|
This function does not ensure the LCD is ready to accept new data and thus needs to
|
||||||
be handled by the caller.
|
be handled by the caller.
|
||||||
*/
|
*/
|
||||||
void writeLCDByte_(uint8_t);
|
void writeLCDDBusByte_(uint8_t);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Given an 8 bit integer, writes it to the LCD data bus, regardless of its
|
||||||
|
configuration (default 8-bit mode, 8-bit arbitrary pin mode and 4-bit mode).
|
||||||
|
*/
|
||||||
|
void writeLCDDBusByte(uint8_t b);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Given a 8 bit integer representing a LCD instruction, sends it to the LCD display.
|
Given a 8 bit integer representing a LCD instruction, sends it to the LCD display.
|
||||||
|
Loading…
Reference in New Issue
Block a user