00001
00022
00023 #include "WProgram.h"
00024
00025 #ifndef uOLED_h
00026 #define uOLED_h
00027
00028 #ifndef DEBUG
00029 #define DEBUG 1 // 0 for no debugging
00030 #define debugPort Serial // on mega Serial,Serial1,2,3
00031 #endif
00032
00034 #define SMALL_FONT 0x00
00035
00037 #define MEDIUM_FONT 0x01
00038
00040 #define LARGE_FONT 0x02
00041
00043 #define FULL 0x00
00044
00046 #define EMPTY 0x01
00047
00049 #define NOTE_B0 1//31
00050 #define NOTE_C1 2//33
00051 #define NOTE_CS1 3//35
00052 #define NOTE_D1 4//37
00053 #define NOTE_DS1 5//39
00054 #define NOTE_E1 6//41
00055 #define NOTE_F1 7//44
00056 #define NOTE_FS1 8//46
00057 #define NOTE_G1 9//49
00058 #define NOTE_GS1 10//52
00059 #define NOTE_A1 11//55
00060 #define NOTE_AS1 12//58
00061 #define NOTE_B1 13//62
00062 #define NOTE_C2 14//65
00063 #define NOTE_CS2 15//69
00064 #define NOTE_D2 16//73
00065 #define NOTE_DS2 17//78
00066 #define NOTE_E2 18//82
00067 #define NOTE_F2 19//87
00068 #define NOTE_FS2 20//93
00069 #define NOTE_G2 21//98
00070 #define NOTE_GS2 104
00071 #define NOTE_A2 110
00072 #define NOTE_AS2 117
00073 #define NOTE_B2 123
00074 #define NOTE_C3 131
00075 #define NOTE_CS3 139
00076 #define NOTE_D3 147
00077 #define NOTE_DS3 156
00078 #define NOTE_E3 165
00079 #define NOTE_F3 175
00080 #define NOTE_FS3 185
00081 #define NOTE_G3 196
00082 #define NOTE_GS3 208
00083 #define NOTE_A3 220
00084 #define NOTE_AS3 233
00085 #define NOTE_B3 247
00086 #define NOTE_C4 262
00087 #define NOTE_CS4 277
00088 #define NOTE_D4 294
00089 #define NOTE_DS4 311
00090 #define NOTE_E4 330
00091 #define NOTE_F4 349
00092 #define NOTE_FS4 370
00093 #define NOTE_G4 392
00094 #define NOTE_GS4 415
00095 #define NOTE_A4 440
00096 #define NOTE_AS4 466
00097 #define NOTE_B4 494
00098 #define NOTE_C5 523
00099 #define NOTE_CS5 554
00100 #define NOTE_D5 587
00101 #define NOTE_DS5 622
00102 #define NOTE_E5 659
00103 #define NOTE_F5 698
00104 #define NOTE_FS5 740
00105 #define NOTE_G5 784
00106 #define NOTE_GS5 831
00107 #define NOTE_A5 880
00108 #define NOTE_AS5 932
00109 #define NOTE_B5 988
00110 #define NOTE_C6 1047
00111 #define NOTE_CS6 1109
00112 #define NOTE_D6 1175
00113 #define NOTE_DS6 1245
00114 #define NOTE_E6 1319
00115 #define NOTE_F6 1397
00116 #define NOTE_FS6 1480
00117 #define NOTE_G6 1568
00118 #define NOTE_GS6 1661
00119 #define NOTE_A6 1760
00120 #define NOTE_AS6 1865
00121 #define NOTE_B6 1976
00122 #define NOTE_C7 2093
00123 #define NOTE_CS7 2217
00124 #define NOTE_D7 2349
00125 #define NOTE_DS7 2489
00126 #define NOTE_E7 2637
00127 #define NOTE_F7 2794
00128 #define NOTE_FS7 2960
00129 #define NOTE_G7 3136
00130 #define NOTE_GS7 3322
00131 #define NOTE_A7 3520
00132 #define NOTE_AS7 3729
00133 #define NOTE_B7 3951
00134 #define NOTE_C8 4186
00135 #define NOTE_CS8 4435
00136 #define NOTE_D8 4699
00137 #define NOTE_DS8 4978
00138 #define OCTAVE_OFFSET 0
00139
00141
00144 class uOLED
00145 {
00146 public:
00147
00149 uOLED(void);
00150
00152
00162 void begin(int pin, long baud, HardwareSerial *serialToUse);
00163
00165 int PinReset;
00166
00168
00171 char res;
00172
00174
00177 int x_res;
00178
00180
00183 int y_res;
00184
00185
00187
00190 void PutPixel (char x, char y, int color);
00191
00193
00196 void Line (char x1, char y1, char x2, char y2, int color);
00197
00199
00204 void Rectangle (char x1, char y1, char x2, char y2, int color, char filled);
00205
00207
00210 void Circle (char x, char y, char radius, int color, char filled);
00211
00213
00217 void SetBackColor (int color);
00218
00220
00225 void Triangle(char x1, char y1, char x2, char y2, char x3, char y3, int color, char filled);
00226
00228
00231 void CopyPaste (char xCopy, char yCopy, char xPaste, char yPaste, char Width, char Height);
00232
00233
00235
00249 void Character (char Character, char font, char col, char row, int color, char transparent);
00250
00252
00271 void CharacterGraphic(char Character, char font, char col, char row, int color, char Width, char Height, char transparent);
00272
00274
00289 void Text(char col, char row, char font, int color, char *Text, char transparent);
00290
00292
00312 void TextGraphic(char col, char row, char font, int color, char Width, char Height, char *text, char transparent);
00313
00315
00318 void TextButton (char state, char x, char y, int ButtonColor, char font, int TextColor, char TextWidth, char TextHeight, char *Text);
00319
00321
00324 void AddBMPChar(char reference, char data1, char data2, char data3, char data4, char data5, char data6, char data7, char data8);
00325
00327
00330 void PutBMPChar(char reference, char x, char y, int color);
00331
00333
00336 unsigned int ReadPixel(char x, char y);
00337
00338
00339
00341
00344 void Cls(void);
00345
00347
00350 void DisplayControl(char Mode, char Value);
00351
00353
00356 void SetContrast(char contrastValue);
00357
00359
00362 void SetPowerState(char state);
00363
00365
00368 void SetDisplayState(char state);
00369
00371
00374 void DeviceInfo();
00375
00377
00380 void scrollEnable(boolean enable);
00381
00383
00386 void scrollToRight(boolean toRight);
00387
00389
00392 void scrollSpeed(byte scrollSpeed);
00393
00394
00396
00399 void sdInit();
00400
00402
00405 void sdSetMemAdrr(char Umsb, char Ulsb, char Lmsb, char Llsb);
00406
00408
00411 void sdWriteByte(byte data);
00412
00414
00417 byte sdReadByte(void);
00418
00420
00423 void sdWriteBlock(long sector, byte data[]);
00424
00426
00429 void sdReadBlock(long sector, byte data[]);
00430
00432
00435 void sdScreenCopy(byte x, byte y, byte width, byte height, long sector);
00436
00438
00441 void sdDisplayImage(byte x, byte y, byte width, byte height, boolean twoBytesPP, long sector);
00442
00444
00447 void sdDisplayVideo(byte x, byte y, byte width, byte height, boolean twoBytesPP, byte fdelay, int frames, long sector);
00448
00450
00455 void playTone(int tone, int duration);
00456
00458
00461 void playRtttl(char *song);
00462
00463 private:
00465
00468 HardwareSerial *pSerial;
00469
00471 void write(byte pData);
00472
00474 void begin(long BaudRate);
00475
00477 boolean available(void);
00478
00480 int read(void);
00481
00483
00486 void SetFontSize(char font);
00487
00489
00491 void TextMode (char mode);
00492
00494
00496 void PenSize(char size);
00497
00499
00501 char RBack(void);
00502
00504
00506 void DevInfoInVar(void);
00507 };
00508
00509 #endif
00510