modm API documentation
modm::Hd44780< DATA, RW, RS, E > Class Template Reference

#include <modm/driver/display/hd44780.hpp>

Inheritance diagram for modm::Hd44780< DATA, RW, RS, E >:
modm::CharacterDisplay modm::IOStream

Public Types

enum  Command {
  ClearDisplay = 0b00000001, ResetCursor = 0b00000010, IncrementCursor = 0b00000110, DecrementCursor = 0b00000100,
  DisableDisplay = 0b00001000, EnableDisplay = 0b00001100, DisableCursor = 0b00001000, EnableCursor = 0b00001010,
  DisableCursorBlink = 0b00001000, EnableCursorBlink = 0b00001001, ShiftCursorLeft = 0b00010000, ShiftCursorRight = 0b00010100
}
 

Public Member Functions

 Hd44780 (uint8_t width, uint8_t height)
 Constructor.
 
void initialize ()
 
virtual void writeRaw (char c)
 
virtual void setCursor (uint8_t column, uint8_t line)
 
void execute (Command command)
 
void clear ()
 
void writeCGRAM (uint8_t character, const uint8_t *cg)
 
IOStreamascii ()
 set the output mode to ASCII style for integer types
 
IOStreambin ()
 set the output mode to binary style for integer types
 
IOStreamendl ()
 
IOStreamflush ()
 
IOStreamget (char &c)
 Reads one character and returns it if available. Otherwise, returns IOStream::eof.
 
IOStreamget (char *s, size_t n)
 
template<size_t N>
IOStreamget (char (&s)[N])
 
IOStreamhex ()
 set the output mode to hexadecimal style for integer types
 
IOStreamoperator<< (const bool &v)
 
IOStreamoperator<< (const char &v)
 
IOStreamoperator<< (const uint8_t &v)
 
IOStreamoperator<< (const int16_t &v)
 
IOStreamoperator<< (const uint16_t &v)
 
IOStreamoperator<< (const int32_t &v)
 
IOStreamoperator<< (const uint32_t &v)
 
IOStreamoperator<< (const char *s)
 
IOStreamoperator<< (const void *p)
 write the hex value of a pointer
 
template<class Ret , class... Args>
IOStreamoperator<< (Ret (*pointer)(Args...))
 Write the hex value of any function pointer.
 
IOStreamoperator<< (IOStream &(*format)(IOStream &))
 
void write (char c)
 

Static Public Attributes

static constexpr char eof = -1
 

Protected Typedefs

using driver = Hd44780Base< DATA, RW, RS, E >
 

Protected Member Functions

void writeBin (uint8_t value)
 
void writeHex (uint8_t value)
 
void writeInteger (int16_t value)
 
void writeInteger (uint16_t value)
 
void writeInteger (int32_t value)
 
void writeInteger (uint32_t value)
 
template<typename T >
void writeIntegerMode (const T v)
 
void writePointer (const void *value)
 

Protected Attributes

uint8_t column
 
uint8_t line
 
uint8_t lineCount
 
uint8_t lineWidth
 
Writer writer
 

Detailed Description

template<typename DATA, typename RW, typename RS, typename E>
class modm::Hd44780< DATA, RW, RS, E >

Driver for HD44780 compatible displays

This driver supports only one controller, with any configuration up to 80 characters (most common: 8x1, 16x2, 20x4). You can choose to use a 4bit bus or a 8bit bus, simply by providing one with the propriate width.

Template Parameters
DATAA 8bit or 4bit Port.
RWRead/Write-Select Pin
RSCommand/Data-Select Pin
EEnable Pin
See also
http://en.wikipedia.org/wiki/HD44780_Character_LCD
Author
Fabian Greif
Niklas Hauser

Member Enumeration Documentation

Enum ValuesDocumentation
ClearDisplay 

Clear the display content.

ResetCursor 

Set cursor to position (0,0)

IncrementCursor 

Increments address upon write.

DecrementCursor 

Decrements address upon write.

DisableDisplay 

Disable display.

EnableDisplay 

Enable display.

DisableCursor 

Disable cursor.

EnableCursor 

Enable cursor.

DisableCursorBlink 

Disable blinking cursor.

EnableCursorBlink 

Enable blinking cursor.

ShiftCursorLeft 

Shift cursor left.

ShiftCursorRight 

Shift cursor right.

Member Function Documentation

IOStream & modm::IOStream::get ( char *  s,
size_t  n 
)
inherited

reads characters into NULL delimited c string in contrast to the standard implementation, this does not care about newline characters in the input

template<typename DATA , typename RW , typename RS , typename E >
void modm::Hd44780< DATA, RW, RS, E >::initialize ( )

Initialize the display

The display needs some time to initialize after startup. You have to wait at least 50 ms after startup before calling this method.

template<typename DATA , typename RW , typename RS , typename E >
virtual void modm::Hd44780< DATA, RW, RS, E >::setCursor ( uint8_t  column,
uint8_t  line 
)
virtual

Set cursor to specified position

Parameters
columnhorizontal position
linevertical position

Implements modm::CharacterDisplay.

void modm::CharacterDisplay::write ( char  c)
inherited

Write a character

This method provides an automatic wrap-round if the output reaches the end of the current line or a newline character is detected.

Use writeRaw() if this behavior is not wanted.

template<typename DATA , typename RW , typename RS , typename E >
void modm::Hd44780< DATA, RW, RS, E >::writeCGRAM ( uint8_t  character,
const uint8_t *  cg 
)

Write bitmap to display for use as user defined character. cg must be uint8_t[8].

template<typename DATA , typename RW , typename RS , typename E >
virtual void modm::Hd44780< DATA, RW, RS, E >::writeRaw ( char  c)
virtual

Write a raw character at cursor position

Unlike write() no further processing will occur.

See also
write()

Implements modm::CharacterDisplay.


The documentation for this class was generated from the following file: