SG12864A

Dependents:   SG12864A_TestProgram

Committer:
shintamainjp
Date:
Tue Jul 20 03:59:17 2010 +0000
Revision:
1:aacd73a4e7ee
Parent:
0:238f2d048222
Child:
2:91c03e41c927

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:238f2d048222 1 /**
shintamainjp 0:238f2d048222 2 * SG12864A Graphics LCD module driver class (Version 0.0.1)
shintamainjp 0:238f2d048222 3 *
shintamainjp 0:238f2d048222 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:238f2d048222 5 * http://shinta.main.jp/
shintamainjp 0:238f2d048222 6 */
shintamainjp 0:238f2d048222 7
shintamainjp 0:238f2d048222 8 #ifndef _SG12864A_H_
shintamainjp 0:238f2d048222 9 #define _SG12864A_H_
shintamainjp 0:238f2d048222 10
shintamainjp 0:238f2d048222 11 #include "mbed.h"
shintamainjp 0:238f2d048222 12
shintamainjp 1:aacd73a4e7ee 13 /**
shintamainjp 1:aacd73a4e7ee 14 */
shintamainjp 0:238f2d048222 15 class SG12864A {
shintamainjp 0:238f2d048222 16 public:
shintamainjp 0:238f2d048222 17 SG12864A(
shintamainjp 0:238f2d048222 18 PinName di,
shintamainjp 0:238f2d048222 19 PinName rw,
shintamainjp 0:238f2d048222 20 PinName en,
shintamainjp 0:238f2d048222 21 PinName db0,
shintamainjp 0:238f2d048222 22 PinName db1,
shintamainjp 0:238f2d048222 23 PinName db2,
shintamainjp 0:238f2d048222 24 PinName db3,
shintamainjp 0:238f2d048222 25 PinName db4,
shintamainjp 0:238f2d048222 26 PinName db5,
shintamainjp 0:238f2d048222 27 PinName db6,
shintamainjp 0:238f2d048222 28 PinName db7,
shintamainjp 0:238f2d048222 29 PinName cs1,
shintamainjp 0:238f2d048222 30 PinName cs2,
shintamainjp 0:238f2d048222 31 PinName res);
shintamainjp 0:238f2d048222 32 ~SG12864A();
shintamainjp 0:238f2d048222 33 enum Target {
shintamainjp 0:238f2d048222 34 CS1,
shintamainjp 0:238f2d048222 35 CS2
shintamainjp 0:238f2d048222 36 };
shintamainjp 1:aacd73a4e7ee 37 void bufferPush(void);
shintamainjp 1:aacd73a4e7ee 38 void bufferPull(void);
shintamainjp 1:aacd73a4e7ee 39 void bufferClear(void);
shintamainjp 1:aacd73a4e7ee 40 void bufferDrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
shintamainjp 1:aacd73a4e7ee 41 void bufferDrawBox(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
shintamainjp 1:aacd73a4e7ee 42 void bufferFillBox(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
shintamainjp 1:aacd73a4e7ee 43
shintamainjp 0:238f2d048222 44 void reset(void);
shintamainjp 0:238f2d048222 45 void clear(void);
shintamainjp 1:aacd73a4e7ee 46
shintamainjp 0:238f2d048222 47 void setDisplayOnOff(Target t, bool on);
shintamainjp 0:238f2d048222 48 void setDisplayStartLine(Target t, uint8_t displayStartLine);
shintamainjp 0:238f2d048222 49 void setPageAddress(Target t, uint8_t addr);
shintamainjp 0:238f2d048222 50 void setColumnAddress(Target t, uint8_t addr);
shintamainjp 0:238f2d048222 51 void readStatus(Target t, uint8_t *c);
shintamainjp 0:238f2d048222 52 void writeData(Target t, uint8_t c);
shintamainjp 0:238f2d048222 53 void readData(Target t, uint8_t *c);
shintamainjp 1:aacd73a4e7ee 54 static const int PIXEL_X = 128;
shintamainjp 1:aacd73a4e7ee 55 static const int PIXEL_Y = 64;
shintamainjp 0:238f2d048222 56 private:
shintamainjp 0:238f2d048222 57 static const int PAGES = 8;
shintamainjp 0:238f2d048222 58 static const int COLUMNS = 64;
shintamainjp 1:aacd73a4e7ee 59 uint8_t buffer[PAGES * COLUMNS * 2];
shintamainjp 0:238f2d048222 60 DigitalOut ioDI;
shintamainjp 0:238f2d048222 61 DigitalOut ioRW;
shintamainjp 0:238f2d048222 62 DigitalOut ioEN;
shintamainjp 0:238f2d048222 63 BusInOut ioDB;
shintamainjp 0:238f2d048222 64 DigitalOut ioCS1;
shintamainjp 0:238f2d048222 65 DigitalOut ioCS2;
shintamainjp 0:238f2d048222 66 DigitalOut ioRES;
shintamainjp 0:238f2d048222 67 enum Mode {
shintamainjp 0:238f2d048222 68 Data,
shintamainjp 0:238f2d048222 69 Instruction
shintamainjp 0:238f2d048222 70 };
shintamainjp 0:238f2d048222 71 void setDirectionToRead();
shintamainjp 0:238f2d048222 72 void setDirectionToWrite();
shintamainjp 0:238f2d048222 73 void write(Target t, Mode m, uint8_t c);
shintamainjp 0:238f2d048222 74 void read(Target t, Mode m, uint8_t *c);
shintamainjp 0:238f2d048222 75 void reset(bool b);
shintamainjp 0:238f2d048222 76 };
shintamainjp 0:238f2d048222 77
shintamainjp 0:238f2d048222 78 #endif