Adafruit ssd1331 OLED 96x64 SPI model

Fork of OledLib by tetsuya noguchi

Committer:
AhJie
Date:
Tue Feb 02 15:08:01 2016 +0000
Revision:
7:60b2f555f3b7
Parent:
6:7c25a9403243
Adafruit ssd1331
; 96x64 OLED

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TETSUYA 2:e331851128c1 1 // ALO-095BWNN-J9 test program
TETSUYA 2:e331851128c1 2 // See also "http://www.aitendo.co.jp/product/2099"
TETSUYA 2:e331851128c1 3
TETSUYA 2:e331851128c1 4
TETSUYA 2:e331851128c1 5 #ifndef __SPIOLED96x64_H__
TETSUYA 2:e331851128c1 6 #define __SPIOLED96x64_H__
TETSUYA 2:e331851128c1 7
TETSUYA 2:e331851128c1 8 #include "mbed.h"
TETSUYA 2:e331851128c1 9 #include "ascii_font6x8.h"
TETSUYA 2:e331851128c1 10 #include "small_font.h"
TETSUYA 2:e331851128c1 11
TETSUYA 4:b68843c0269c 12 //#define __USE_GAC__ // use SSD1331/1332 Graphi Accelaration Command
TETSUYA 4:b68843c0269c 13
TETSUYA 2:e331851128c1 14 #define Dis_X_MAX 96-1 // Max X axial direction in screen
TETSUYA 2:e331851128c1 15 #define Dis_Y_MAX 64-1 // Max Y axial direction in screen
TETSUYA 2:e331851128c1 16 #define X_WitchASC 6 // character's width
TETSUYA 2:e331851128c1 17 #define X_Witch 8 // character's width
TETSUYA 2:e331851128c1 18 #define Y_Witch 8 // character's height
TETSUYA 2:e331851128c1 19
TETSUYA 2:e331851128c1 20 #define CS_NORMAL 0
TETSUYA 2:e331851128c1 21 #define CS_WIDE 1
TETSUYA 2:e331851128c1 22 #define CS_HIGH 2
AhJie 7:60b2f555f3b7 23 #define CS_WHx4 3
AhJie 7:60b2f555f3b7 24 #define CS_WHx9 4
AhJie 7:60b2f555f3b7 25 #define CS_WHx16 5
AhJie 7:60b2f555f3b7 26 #define CS_WHx25 6
AhJie 7:60b2f555f3b7 27 #define CS_WHx36 7
AhJie 7:60b2f555f3b7 28 #define CS_WHx49 8
AhJie 7:60b2f555f3b7 29 #define CS_WHx64 9
TETSUYA 4:b68843c0269c 30
TETSUYA 6:7c25a9403243 31 #define GAC_FILL_ENABLE_DISABLE 0x26 // �h��‚Ԃ��”ۃR�}���h
TETSUYA 4:b68843c0269c 32 #define GAC_DRAW_RECTANGLE 0x22 // Rectangle cmd
TETSUYA 6:7c25a9403243 33
TETSUYA 4:b68843c0269c 34 #define GAC_COPY_AREA 0x23 // Copy Area
TETSUYA 4:b68843c0269c 35 #define GAC_SCROLL_SETUP 0x27
TETSUYA 4:b68843c0269c 36 #define GAC_SCROLL_STOP 0x2E
TETSUYA 4:b68843c0269c 37 #define GAC_SCROLL_START 0x2F
TETSUYA 4:b68843c0269c 38
TETSUYA 2:e331851128c1 39 class SPIOLED96x64 : public Stream {
TETSUYA 2:e331851128c1 40 public:
TETSUYA 2:e331851128c1 41 // constructor
TETSUYA 2:e331851128c1 42 SPIOLED96x64(PinName cs_pin, PinName rst_pin, PinName a0_pin, PinName mosi_pin, PinName miso_pin, PinName sclk_pin);
TETSUYA 2:e331851128c1 43 #if DOXYGEN_ONLY
TETSUYA 2:e331851128c1 44 int putc(int c);
TETSUYA 2:e331851128c1 45 int printf(const char* format, ...);
TETSUYA 2:e331851128c1 46 #endif
TETSUYA 2:e331851128c1 47 void RegWrite(unsigned char Command);
TETSUYA 2:e331851128c1 48 void RegWriteM(unsigned char *Command, int count);
TETSUYA 2:e331851128c1 49 void DataWrite(unsigned char c);
TETSUYA 2:e331851128c1 50 void DataWrite_to(unsigned int Dat);
TETSUYA 2:e331851128c1 51
TETSUYA 2:e331851128c1 52 void Draw_Dot(int x,int y,unsigned int Color);
TETSUYA 2:e331851128c1 53
TETSUYA 2:e331851128c1 54 void Box(int x1,int y1, int x2, int y2, unsigned int Color, int fill);
TETSUYA 2:e331851128c1 55 void Fill_Screen(unsigned int Color);
TETSUYA 2:e331851128c1 56
TETSUYA 2:e331851128c1 57 void CS_Conv(int *lpx, int *lpy);
TETSUYA 2:e331851128c1 58 unsigned int ColorConv(unsigned int R,unsigned int G,unsigned int B);
TETSUYA 2:e331851128c1 59 void ChangeFontColor(unsigned int color);
TETSUYA 2:e331851128c1 60 void ChangeBGColor(unsigned int color);
TETSUYA 2:e331851128c1 61 void SetFontSize(int);
TETSUYA 2:e331851128c1 62 void locate(int column, int row);
TETSUYA 2:e331851128c1 63 int row();
TETSUYA 2:e331851128c1 64 int column();
TETSUYA 2:e331851128c1 65
TETSUYA 2:e331851128c1 66 void line( int x0,int y0,int x1,int y1, unsigned int fore_col ,int pat );
TETSUYA 2:e331851128c1 67 void circle (int radius, int x, int y , unsigned int col, int fill);
TETSUYA 2:e331851128c1 68 void Pattern(int x,int y,int width, int height, unsigned int *p);
TETSUYA 4:b68843c0269c 69 void GACEnable(int enable);
TETSUYA 6:7c25a9403243 70
TETSUYA 4:b68843c0269c 71 void Copy(int src_x1,int src_y1,int src_x2,int src_y2, int dst_x,int dst_y);
TETSUYA 4:b68843c0269c 72 void ScrollSet(int a, int b, int c, int d , int frame_interval);
TETSUYA 4:b68843c0269c 73 void Scroll(int enable);
TETSUYA 6:7c25a9403243 74
TETSUYA 2:e331851128c1 75 protected:
TETSUYA 2:e331851128c1 76 // Stream implementation functions
TETSUYA 2:e331851128c1 77 virtual int _putc( int c );
TETSUYA 2:e331851128c1 78 virtual int _getc();
TETSUYA 2:e331851128c1 79 private:
TETSUYA 2:e331851128c1 80 DigitalOut CS, RES, DC;
TETSUYA 2:e331851128c1 81 SPI spi; // mosi, miso, sclk
TETSUYA 2:e331851128c1 82
TETSUYA 2:e331851128c1 83 unsigned int Char_Color; // character's color
TETSUYA 2:e331851128c1 84 unsigned int BGround_Color;
TETSUYA 4:b68843c0269c 85 int GAC_Useflag;
TETSUYA 2:e331851128c1 86 int x_locate;
TETSUYA 2:e331851128c1 87 int y_locate;
TETSUYA 2:e331851128c1 88 int chr_size;
TETSUYA 2:e331851128c1 89 void Init(void);
TETSUYA 2:e331851128c1 90 void PutChar(int x,int y,unsigned int a);
TETSUYA 2:e331851128c1 91 unsigned int findface(unsigned short c);
TETSUYA 2:e331851128c1 92
TETSUYA 2:e331851128c1 93
TETSUYA 2:e331851128c1 94 };
TETSUYA 2:e331851128c1 95
TETSUYA 2:e331851128c1 96
TETSUYA 0:94eac1a165ab 97 #endif