waaaa

Dependencies:   mbed

Committer:
M_souta
Date:
Thu Nov 07 11:07:51 2019 +0000
Revision:
0:cb29cf2767cd
ver2.0.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
M_souta 0:cb29cf2767cd 1 /** SO1602A is Organic-LED, and has 16 chars/line and 2 lines.
M_souta 0:cb29cf2767cd 2 *
M_souta 0:cb29cf2767cd 3 * This librarry supports "printf()" C format.
M_souta 0:cb29cf2767cd 4 *
M_souta 0:cb29cf2767cd 5 *
M_souta 0:cb29cf2767cd 6 * @code
M_souta 0:cb29cf2767cd 7 * #include "mbed.h"
M_souta 0:cb29cf2767cd 8 * #include "SO1602A.h"
M_souta 0:cb29cf2767cd 9 * I2C i2c(p28, p27);
M_souta 0:cb29cf2767cd 10 * SO1602A oled(i2c);
M_souta 0:cb29cf2767cd 11 * DigitalOut led[]= {LED1, LED2, LED3, LED4};
M_souta 0:cb29cf2767cd 12 * int main()
M_souta 0:cb29cf2767cd 13 * {
M_souta 0:cb29cf2767cd 14 * oled.init();
M_souta 0:cb29cf2767cd 15 * int iter= 0;
M_souta 0:cb29cf2767cd 16 * while(true) {
M_souta 0:cb29cf2767cd 17 * led[0] = !led[0];
M_souta 0:cb29cf2767cd 18 * oled.printf("iter: %5.5d.", iter);
M_souta 0:cb29cf2767cd 19 * wait(1.0f);
M_souta 0:cb29cf2767cd 20 * if(iter%10 == 0) // 10s
M_souta 0:cb29cf2767cd 21 * oled.clear();
M_souta 0:cb29cf2767cd 22 * iter++;
M_souta 0:cb29cf2767cd 23 * }
M_souta 0:cb29cf2767cd 24 * }
M_souta 0:cb29cf2767cd 25 * @endcode
M_souta 0:cb29cf2767cd 26 */
M_souta 0:cb29cf2767cd 27
M_souta 0:cb29cf2767cd 28 #pragma once
M_souta 0:cb29cf2767cd 29
M_souta 0:cb29cf2767cd 30 #include "mbed.h"
M_souta 0:cb29cf2767cd 31
M_souta 0:cb29cf2767cd 32 // SA0(Pin4); Low: i2c_addr= 0x78, High: 0x7a;
M_souta 0:cb29cf2767cd 33 // DDRAM addr. Line1: 0x00 ~ 0x0f. Line2: 0x20 ~ 0x2f.
M_souta 0:cb29cf2767cd 34
M_souta 0:cb29cf2767cd 35 class SO1602A : public Stream{
M_souta 0:cb29cf2767cd 36 public:
M_souta 0:cb29cf2767cd 37 SO1602A (PinName sda, PinName scl, char address= 0x78);
M_souta 0:cb29cf2767cd 38 SO1602A (I2C &_i2c, char address= 0x78);
M_souta 0:cb29cf2767cd 39 ~SO1602A();
M_souta 0:cb29cf2767cd 40 // ******************** printf() future of C-language. ***************************
M_souta 0:cb29cf2767cd 41
M_souta 0:cb29cf2767cd 42 /** Initialize
M_souta 0:cb29cf2767cd 43 */
M_souta 0:cb29cf2767cd 44 void init();
M_souta 0:cb29cf2767cd 45
M_souta 0:cb29cf2767cd 46 /** Clear Display.
M_souta 0:cb29cf2767cd 47 */
M_souta 0:cb29cf2767cd 48 void clear();
M_souta 0:cb29cf2767cd 49
M_souta 0:cb29cf2767cd 50 /** Set Position of char.
M_souta 0:cb29cf2767cd 51 * @param col: column, row: rows.
M_souta 0:cb29cf2767cd 52 */
M_souta 0:cb29cf2767cd 53 void locate(int col, int row);
M_souta 0:cb29cf2767cd 54
M_souta 0:cb29cf2767cd 55 /** Set Contrast.
M_souta 0:cb29cf2767cd 56 * @param val; 256steps, 0x00 ~ 0xff. Contrast increas as the value.
M_souta 0:cb29cf2767cd 57 */
M_souta 0:cb29cf2767cd 58 void setContrast(char val);
M_souta 0:cb29cf2767cd 59
M_souta 0:cb29cf2767cd 60 /** Set Display flag.
M_souta 0:cb29cf2767cd 61 * @parm Enable Display, Cursor turned on, Cursor Blink.
M_souta 0:cb29cf2767cd 62 */
M_souta 0:cb29cf2767cd 63 void setDispFlag(bool disp= true, bool cursor= true, bool blink= true);
M_souta 0:cb29cf2767cd 64
M_souta 0:cb29cf2767cd 65 private:
M_souta 0:cb29cf2767cd 66 I2C *p_i2c;
M_souta 0:cb29cf2767cd 67 I2C &i2c;
M_souta 0:cb29cf2767cd 68 char addr;
M_souta 0:cb29cf2767cd 69 char buf[3];
M_souta 0:cb29cf2767cd 70 int col, row;
M_souta 0:cb29cf2767cd 71
M_souta 0:cb29cf2767cd 72 bool cmd(char chr);
M_souta 0:cb29cf2767cd 73
M_souta 0:cb29cf2767cd 74 // virtual func for printf() in Stream-class.
M_souta 0:cb29cf2767cd 75 virtual int _putc(int val);
M_souta 0:cb29cf2767cd 76 virtual int _getc();
M_souta 0:cb29cf2767cd 77
M_souta 0:cb29cf2767cd 78 // Function SET
M_souta 0:cb29cf2767cd 79 void setRE();
M_souta 0:cb29cf2767cd 80 void clearRE();
M_souta 0:cb29cf2767cd 81 void setSD();
M_souta 0:cb29cf2767cd 82 void clearSD();
M_souta 0:cb29cf2767cd 83
M_souta 0:cb29cf2767cd 84 };
M_souta 0:cb29cf2767cd 85
M_souta 0:cb29cf2767cd 86 // EOF