Skip to content

File lcd_hd44780.h

File List > dev > lcd_hd44780.h

Go to the documentation of this file

Source Code

#pragma once
#ifndef DSY_LCD_HD44780_H
#define DSY_LCD_HD44780_H

#include "daisy_core.h"
#include "per/gpio.h"


namespace daisy
{
class LcdHD44780
{
  public:
    LcdHD44780() {}
    ~LcdHD44780() {}

    struct Config
    {
        bool cursor_on;
        bool cursor_blink;
        Pin  rs, en, d4, d5, d6, d7;
    };

    void Init(const Config &config);

    void Print(const char *string);

    void PrintInt(int number);

    void SetCursor(uint8_t row, uint8_t col);

    void Clear();

  private:
    bool cursor_on;
    bool cursor_blink;
    GPIO lcd_pin_rs;
    GPIO lcd_pin_en;
    GPIO lcd_data_pin[4]; // D4-D7

    void WriteData(uint8_t);
    void WriteCommand(uint8_t);
    void Write(uint8_t, uint8_t);
};

} // namespace daisy

#endif