Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 2 | mjames | 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 | }; |