Subversion Repositories libCharLCD

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #pragma once
  2.  
  3. #include "libCharLCD/lcdInterface.h"
  4.  
  5. class lcd_t
  6. {
  7. public:
  8.         lcd_t(lcdType_t type_,      ///< LCD type code
  9.               ioline_t rsBit_,      ///< LCD register select bit
  10.               ioline_t wrBit_,      ///< LCD register write bit
  11.               ioline_t eBit_,       ///< LCD enable bit
  12.               lcdDataLines_t dBits_ ///< LCD data bits
  13.               )
  14.             : m_lcd(type_, rsBit_, wrBit_, eBit_, dBits_){};
  15.  
  16.         // initialise the display
  17.         void init();
  18.  
  19.         /// \brief clear the display
  20.         void clear();
  21.  
  22.         /// \brief Enable or disable the display
  23.         void enable(bool ena_);
  24.  
  25.         /// \brief Return the X size (8, 10,16, or 20) of this display
  26.         uint8_t displayXsize() const { return m_lcd.displayXsize(); }
  27.  
  28.         /// \brief Return the Y size (1 or 2) of this display
  29.         uint8_t displayYsize() const { return m_lcd.displayYsize(); }
  30.  
  31.         /// \brief set cursor position
  32.         void gotoxy(uint8_t x_, uint8_t y_);
  33.  
  34.         /// \brief Print a string on the LCD: will terminate on null character or count_
  35.         /// characters printed , whichever is first.
  36.         ///
  37.         /// \param str_ Null terminated string
  38.         ///
  39.         /// \param count_ Maximum number of characters to print
  40.         void printString(char *str_, uint8_t count_ = 255);
  41.         void printString(char const *str_, uint8_t count_ = 255);
  42.  
  43.         /// \brief provides a buffer to format a number into, then uses format_num.
  44.         /// \param digits, total digit width including decimal point and sign character
  45.         /// \param dp_pos Decimal point position within number counting digits from right
  46.         /// \param val value to print
  47.         void font_digits(uint8_t digits, uint8_t dp_pos, int val);
  48.  
  49.         /// \brief Define one of 8 user defined graphics
  50.         /// \param code : Graphics code from 0..7
  51.         /// \param rows : bits 4:0 of rows 0:6 define character .
  52.         void defineChar(uint8_t code, uint8_t const *rows);
  53.         void defineChar(uint8_t code, uint8_t * rows);
  54.  
  55. private:
  56.         /// \brief formats an integer value with a decimal point in a particular position
  57.         /// \param buff Workspace buffer
  58.         /// \param digits, total digit width including decimal point and sign character
  59.         /// \param dp_pos Decimal point position within number counting digits from right
  60.         /// \param val value to print
  61.         uint8_t format_num(char *buff, uint8_t digits, uint8_t dp_pos, int val);
  62.  
  63.         lcdInterface_t m_lcd;
  64. };