ALO-095BWNN-J9 aitendo OLED 96x64 SPI model Ver1.04
Revision 6:7c25a9403243, committed 2011-01-15
- Comitter:
- TETSUYA
- Date:
- Sat Jan 15 03:24:10 2011 +0000
- Parent:
- 5:730724f253a4
- Commit message:
Changed in this revision
spioled96x64.cpp | Show annotated file Show diff for this revision Revisions of this file |
spioled96x64.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 730724f253a4 -r 7c25a9403243 spioled96x64.cpp --- a/spioled96x64.cpp Fri Jan 14 05:10:02 2011 +0000 +++ b/spioled96x64.cpp Sat Jan 15 03:24:10 2011 +0000 @@ -9,6 +9,8 @@ // Ver1.02 SD1331/1332用 GACcommand対応 // ただし現状ではRectangeしか機能しない模様 // Ver1.03 Box (GAC) Color Bug fix +// Ver.104 Font Position Convert Bug fix +// Position Clip is refine. #include "mbed.h" #include "spioled96x64.h" @@ -145,16 +147,8 @@ void SPIOLED96x64::Draw_Dot(int x,int y,unsigned int Color) { unsigned char cmd[7]={0x15,0x00,0x00,0x75,0x00,0x00,0x00}; - if ( ( x > Dis_X_MAX ) - ||( y > Dis_Y_MAX ) ) return ; - /* - RegWrite(0x15); - RegWrite((unsigned char)x); // Column Start Address - RegWrite((unsigned char)x); // Column End Address - RegWrite(0x75); - RegWrite((unsigned char)y); // Row Start Address - RegWrite((unsigned char)y); // Row End Address - */ + if ( ( x < 0 )||( y < 0 ) + ||( x > Dis_X_MAX )||( y > Dis_Y_MAX ) ) return ; cmd[1] = (unsigned char)x; cmd[2] = (unsigned char)x; cmd[4] = (unsigned char)y; @@ -233,7 +227,7 @@ for(j=Y_Witch-1;j>=0;j--){ for ( k=0;k<lpy;k++){ - Draw_Dot(x+(i*lpx)+l,y+((j+1)*lpy)-k, ((Temp & 0x80)==0x80) ? Char_Color : BGround_Color); + Draw_Dot(x+(i*lpx)+l,y+(((j+1)*lpy)-1)-k, ((Temp & 0x80)==0x80) ? Char_Color : BGround_Color); } Temp = Temp << 1; } @@ -372,8 +366,14 @@ // SSD1331/1332用 GAC(アクセラレートコマンド) unsigned char cmd[11]={ 0 }; - if ( ( x1 > Dis_X_MAX )||( y1 > Dis_Y_MAX ) - ||( x2 > Dis_X_MAX )||( y2 > Dis_Y_MAX ) ) return ; + if ( x1 < 0 ) x1 = 0; + else if ( x1 > Dis_X_MAX ) x1 = Dis_X_MAX; + if ( y1 < 0 ) y1 = 0; + else if ( y1 > Dis_Y_MAX ) y1 = Dis_Y_MAX; + if ( x2 < 0 ) x2 = 0; + else if ( x2 > Dis_X_MAX ) x2 = Dis_X_MAX; + if ( y2 < 0 ) y2 = 0; + else if ( y2 > Dis_Y_MAX ) y2 = Dis_Y_MAX; cmd[0] = GAC_FILL_ENABLE_DISABLE; // cmd[1] = (unsigned char)fill; //( fill ) ? 0 : 0; @@ -552,7 +552,7 @@ { GAC_Useflag = enable; } -/* + // 任意領域のコピー // SSD1332では機能しない模様... @@ -616,4 +616,3 @@ } } -*/
diff -r 730724f253a4 -r 7c25a9403243 spioled96x64.h --- a/spioled96x64.h Fri Jan 14 05:10:02 2011 +0000 +++ b/spioled96x64.h Sat Jan 15 03:24:10 2011 +0000 @@ -25,14 +25,13 @@ -#define GAC_FILL_ENABLE_DISABLE 0x26 // 塗りつぶし可否コマンド +#define GAC_FILL_ENABLE_DISABLE 0x26 // �h��Ԃ��ۃR�}���h #define GAC_DRAW_RECTANGLE 0x22 // Rectangle cmd -/* + #define GAC_COPY_AREA 0x23 // Copy Area #define GAC_SCROLL_SETUP 0x27 #define GAC_SCROLL_STOP 0x2E #define GAC_SCROLL_START 0x2F -*/ class SPIOLED96x64 : public Stream { public: @@ -60,17 +59,16 @@ void locate(int column, int row); int row(); int column(); - //void puts( char *s ); void line( int x0,int y0,int x1,int y1, unsigned int fore_col ,int pat ); void circle (int radius, int x, int y , unsigned int col, int fill); void Pattern(int x,int y,int width, int height, unsigned int *p); void GACEnable(int enable); - /* + void Copy(int src_x1,int src_y1,int src_x2,int src_y2, int dst_x,int dst_y); void ScrollSet(int a, int b, int c, int d , int frame_interval); void Scroll(int enable); - */ + protected: // Stream implementation functions virtual int _putc( int c );