34 lines
770 B
C++
34 lines
770 B
C++
#ifndef LCD_CONTROLLER_H
|
|
#define LCD_CONTROLLER_H
|
|
|
|
#include <Arduino.h>
|
|
#include <stdio.h>
|
|
#include <LiquidCrystal.h>
|
|
#include "LEDController.h"
|
|
|
|
class LCDController {
|
|
private:
|
|
FILE* _lcdOutput;
|
|
LiquidCrystal* _lcd;
|
|
int _lcdCols;
|
|
int _lcdRows;
|
|
int _cursorRow;
|
|
int _cursorCol;
|
|
|
|
static int lcdPutchar(char c, FILE* stream);
|
|
static LCDController* _instance;
|
|
|
|
public:
|
|
LCDController(uint8_t rs, uint8_t enable, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
|
|
int cols = 16, int rows = 2);
|
|
~LCDController();
|
|
void begin();
|
|
FILE* stream();
|
|
void clear();
|
|
void setCursor(int col, int row);
|
|
void print(const char* text);
|
|
|
|
static LCDController* getInstance() { return _instance; }
|
|
};
|
|
|
|
#endif |