lcd: add internal columns, rows

This commit is contained in:
Vasily Davydov
2022-10-16 11:26:59 +03:00
parent eec05297a3
commit 243766044c
2 changed files with 235 additions and 152 deletions

View File

@@ -1,11 +1,11 @@
#ifndef LiquidCrystal_h
#define LiquidCrystal_h
#include "DigitalIoPin.h"
#include "chip.h"
#include <cstddef>
#include <string>
#include "chip.h"
#include "DigitalIoPin.h"
// commands
#define LCD_CLEARDISPLAY 0x01
@@ -45,43 +45,43 @@
#define LCD_5x10DOTS 0x04
#define LCD_5x8DOTS 0x00
class LiquidCrystal {
class LiquidCrystal
{
public:
LiquidCrystal (DigitalIoPin *rs, DigitalIoPin *enable, DigitalIoPin *d0,
DigitalIoPin *d1, DigitalIoPin *d2, DigitalIoPin *d3);
LiquidCrystal(DigitalIoPin *rs, DigitalIoPin *enable,
DigitalIoPin *d0, DigitalIoPin *d1, DigitalIoPin *d2, DigitalIoPin *d3);
void begin (uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
void clear ();
void home ();
void clear();
void home();
void noDisplay ();
void display ();
void noBlink ();
void blink ();
void noCursor ();
void cursor ();
void scrollDisplayLeft ();
void scrollDisplayRight ();
void leftToRight ();
void rightToLeft ();
void autoscroll ();
void noAutoscroll ();
void noDisplay();
void display();
void noBlink();
void blink();
void noCursor();
void cursor();
void scrollDisplayLeft();
void scrollDisplayRight();
void leftToRight();
void rightToLeft();
void autoscroll();
void noAutoscroll();
void createChar(uint8_t, uint8_t[]);
void setCursor(uint8_t, uint8_t);
virtual size_t write(uint8_t);
void command(uint8_t);
void print(std::string const &s);
void print(const char *s);
void createChar (uint8_t, uint8_t[]);
void setCursor (uint8_t, uint8_t);
virtual size_t write (uint8_t);
void command (uint8_t);
void print (std::string const &s);
void print (const char *s);
private:
void send(uint8_t, uint8_t);
void write4bits(uint8_t);
void pulseEnable();
void send (uint8_t, uint8_t);
void write4bits (uint8_t);
void pulseEnable ();
DigitalIoPin *rs_pin; // LOW(false): command. HIGH(true): character.
DigitalIoPin *rs_pin; // LOW(false): command. HIGH(true): character.
DigitalIoPin *enable_pin; // activated by a HIGH pulse.
DigitalIoPin *data_pins[4];
@@ -91,7 +91,8 @@ private:
uint8_t _initialized;
uint8_t _numlines,_currline;
uint8_t _numlines, _currline;
uint8_t rows, col;
};
#endif