diff options
author | Stanley Huang <stanleyhuangyc@gmail.com> | 2014-08-15 21:36:52 +1000 |
---|---|---|
committer | Stanley Huang <stanleyhuangyc@gmail.com> | 2014-08-15 21:36:52 +1000 |
commit | 6365d082913a632ce7b82873cf9f9b6b95267377 (patch) | |
tree | 112bf981de43b8150f005a4f3bb9f5fb42ec285d /nanologger/PCD8544.h | |
parent | 25851949cce42c297b8a5c6b4daf684196c78a01 (diff) | |
download | 2021-arduino-obd-6365d082913a632ce7b82873cf9f9b6b95267377.tar.gz 2021-arduino-obd-6365d082913a632ce7b82873cf9f9b6b95267377.tar.bz2 2021-arduino-obd-6365d082913a632ce7b82873cf9f9b6b95267377.zip |
Add missing files for NanoLogger
Diffstat (limited to 'nanologger/PCD8544.h')
-rw-r--r-- | nanologger/PCD8544.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/nanologger/PCD8544.h b/nanologger/PCD8544.h new file mode 100644 index 0000000..c96bc7e --- /dev/null +++ b/nanologger/PCD8544.h @@ -0,0 +1,117 @@ +/* + * PCD8544 - Interface with Philips PCD8544 (or compatible) LCDs. + * + * Copyright (c) 2010 Carlos Rodrigues <cefrodrigues@gmail.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#ifndef PCD8544_H +#define PCD8544_H + + +#if ARDUINO < 100 +#include <WProgram.h> +#else +#include <Arduino.h> +#endif + +// Chip variants supported... +#define CHIP_PCD8544 0 +#define CHIP_ST7576 1 + +#define PCD8544_WIDTH 84 +#define PCD8544_HEIGHT 48 + +#define PCD8544_CMD LOW +#define PCD8544_DATA HIGH + +class PCD8544: public Print { + public: + // All the pins can be changed from the default values... + PCD8544(unsigned char sclk = 2, /* clock (display pin 2) */ + unsigned char sdin = 3, /* data-in (display pin 3) */ + unsigned char dc = 4, /* data select (display pin 4) */ + unsigned char reset = 6, /* reset (display pin 8) */ + unsigned char sce = 5); /* enable (display pin 5) */ + + // Display initialization (dimensions in pixels)... + void begin(unsigned char model=CHIP_PCD8544); + void stop(); + + // Erase everything on the display... + void clear(); + void clearLine(); // ...or just the current line + + // Control the display's power state... + void setPower(bool on); + + // For compatibility with the LiquidCrystal library... + void display(); + void noDisplay(); + + // Activate white-on-black mode (whole display)... + void setInverse(bool inverse); + + // Place the cursor at the start of the current line... + void home(); + + // Place the cursor at position (column, line)... + void setCursor(unsigned char column, unsigned char line); + + // Assign a user-defined glyph (5x8) to an ASCII character (0-31)... + void createChar(unsigned char chr, const unsigned char *glyph); + + // Write an ASCII character at the current cursor position (7-bit)... +#if ARDUINO < 100 + virtual void write(uint8_t chr); +#else + virtual size_t write(uint8_t chr); +#endif + + // Draw a chart element at the current cursor position... + void drawColumn(unsigned char lines, unsigned char value); + + void draw8x8(const unsigned char *data); + void draw16x16(const unsigned char *data); + + protected: + // Current cursor position... + unsigned char column; + unsigned char line; + // Send a command or data to the display... + void send(unsigned char type, unsigned char data); + + private: + unsigned char pin_sclk; + unsigned char pin_sdin; + unsigned char pin_dc; + unsigned char pin_reset; + unsigned char pin_sce; + + // User-defined glyphs (below the ASCII space character)... + const unsigned char *custom[' ']; +}; + + +#endif /* PCD8544_H */ + + +/* vim: set expandtab ts=4 sw=4: */ |