Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers SparkFunSerialGraphicLCD.cpp Source File

SparkFunSerialGraphicLCD.cpp

00001 #include "stdarg.h"
00002 #include "mbed.h"
00003 #include "SparkFunSerialGraphicLCD.h"
00004 
00005 
00006 SparkFunSerialGraphicLCD::SparkFunSerialGraphicLCD(PinName tx, PinName rx = NC) : MySerial(tx, rx) {
00007     MySerial.baud(9600);
00008     clear();
00009     setBacklight(100);
00010     setFont(0);
00011     setAutoCRLF(false);
00012     setReverse(false);
00013 }
00014 
00015 void SparkFunSerialGraphicLCD::clear() {
00016     MySerial.putc(0x7C);
00017     MySerial.putc(0x00);
00018 }
00019 
00020 void SparkFunSerialGraphicLCD::setDebug(unsigned char level) {
00021     MySerial.putc(0x7C);
00022     MySerial.putc(0x01);
00023     MySerial.putc(level);
00024 }
00025 
00026 void SparkFunSerialGraphicLCD::setBacklight(unsigned char intensity) {
00027     MySerial.putc(0x7C);
00028     MySerial.putc(0x02);
00029     MySerial.putc(intensity);
00030 } 
00031 
00032 void SparkFunSerialGraphicLCD::drawCircle(unsigned char x, unsigned char y, unsigned char radius, bool set) {
00033     MySerial.putc(0x7C);
00034     MySerial.putc(0x03);
00035     MySerial.putc(x);
00036     MySerial.putc(y);
00037     MySerial.putc(radius);
00038     MySerial.putc(set);
00039 }
00040 
00041 void SparkFunSerialGraphicLCD::setAutoCRLF(bool enable) {
00042     MySerial.putc(0x7C);
00043     MySerial.putc(0x04);
00044     MySerial.putc(enable);
00045 }
00046 
00047 void SparkFunSerialGraphicLCD::eraseBlock(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1) {
00048     MySerial.putc(0x7C);
00049     MySerial.putc(0x05);
00050     MySerial.putc(x0);
00051     MySerial.putc(y0);
00052     MySerial.putc(x1);
00053     MySerial.putc(y1);
00054 }
00055 
00056 void SparkFunSerialGraphicLCD::reset() {
00057     MySerial.putc(0x7C);
00058     MySerial.putc(0x06);
00059 }
00060 
00061 void SparkFunSerialGraphicLCD::setBaud(unsigned char baud) {
00062     if(baud < 1) baud = 1;
00063     else if(baud > 6) baud = 6;
00064     
00065     MySerial.putc(0x7C);
00066     MySerial.putc(0x07);
00067     MySerial.putc(baud);
00068     switch(baud) {
00069     case 1:
00070         MySerial.baud(4800);
00071         break;
00072     case 2:
00073         MySerial.baud(9600);
00074         break;
00075     case 3:
00076         MySerial.baud(19200);
00077         break;
00078     case 4:
00079         MySerial.baud(38400);
00080         break;
00081     case 5:
00082         MySerial.baud(57600);
00083         break;
00084     case 6:
00085         MySerial.baud(115200);
00086         break;
00087     }        
00088 }
00089 
00090 void SparkFunSerialGraphicLCD::setFont(unsigned char font) {
00091     MySerial.putc(0x7C);
00092     MySerial.putc(0x08);
00093     MySerial.putc(font);
00094 }
00095 
00096 void SparkFunSerialGraphicLCD::setFontMode(unsigned char mode) {
00097     MySerial.putc(0x7C);
00098     MySerial.putc(0x0A);
00099     MySerial.putc(mode);
00100 }
00101 
00102 void SparkFunSerialGraphicLCD::drawSprite(unsigned char x, unsigned char y, unsigned char sprite, unsigned char mode) {
00103     MySerial.putc(0x7C);
00104     MySerial.putc(0x0B);
00105     MySerial.putc(x);
00106     MySerial.putc(y);
00107     MySerial.putc(sprite);
00108     MySerial.putc(mode);
00109 }
00110 
00111 void SparkFunSerialGraphicLCD::drawLine(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, bool set) {
00112     MySerial.putc(0x7C);
00113     MySerial.putc(0x0C);
00114     MySerial.putc(x0);
00115     MySerial.putc(y0);
00116     MySerial.putc(x1);
00117     MySerial.putc(y1);
00118     MySerial.putc(set);
00119 }
00120 
00121 void SparkFunSerialGraphicLCD::uploadSprite(unsigned char sprite, unsigned char width, unsigned char height, unsigned char* data) {
00122     error("method not implemented");
00123     MySerial.putc(0x7C);
00124     MySerial.putc(0x0D);
00125     MySerial.putc(sprite);
00126     MySerial.putc(width);
00127     MySerial.putc(height);
00128 }
00129 
00130 void SparkFunSerialGraphicLCD::drawBox(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, bool set) {
00131     MySerial.putc(0x7C);
00132     MySerial.putc(0x0F);
00133     MySerial.putc(x0);
00134     MySerial.putc(y0);
00135     MySerial.putc(x1);
00136     MySerial.putc(y1);
00137     MySerial.putc(set);
00138 }
00139 
00140 void SparkFunSerialGraphicLCD::setPixel(unsigned char x, unsigned char y, bool set) {
00141     MySerial.putc(0x7C);
00142     MySerial.putc(0x10);
00143     MySerial.putc(x);
00144     MySerial.putc(y);
00145     MySerial.putc(set);
00146 }
00147 void SparkFunSerialGraphicLCD::drawFilledBox(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, unsigned char fill) {
00148     MySerial.putc(0x7C);
00149     MySerial.putc(0x12);
00150     MySerial.putc(x0);
00151     MySerial.putc(y0);
00152     MySerial.putc(x1);
00153     MySerial.putc(y1);
00154     MySerial.putc(fill);
00155 }
00156 
00157 
00158 void SparkFunSerialGraphicLCD::setReverse(bool enable) {
00159     MySerial.putc(0x7C);
00160     MySerial.putc(0x14);
00161     MySerial.putc(enable);
00162 }
00163 
00164 /*void SparkFunSerialGraphicLCD::setSplash(bool enable) {
00165     MySerial.putc(0x7C);
00166     MySerial.putc(0x15);
00167     MySerial.putc(enable);
00168 }*/
00169 
00170 void SparkFunSerialGraphicLCD::bitblt(unsigned char x, unsigned char y, unsigned char mode, unsigned char w, unsigned char h, unsigned char* data) {
00171     error("method not implemented");
00172     MySerial.putc(0x7C);
00173     MySerial.putc(0x0D);
00174     MySerial.putc(x);
00175     MySerial.putc(y);
00176     MySerial.putc(mode);
00177     MySerial.putc(w);
00178     MySerial.putc(h);
00179 }
00180 
00181 void SparkFunSerialGraphicLCD::setCursorX(unsigned char x) {
00182     MySerial.putc(0x7C);
00183     MySerial.putc(0x18);
00184     MySerial.putc(x);
00185 }
00186 
00187 void SparkFunSerialGraphicLCD::setCursorY(unsigned char y) {
00188     MySerial.putc(0x7C);
00189     MySerial.putc(0x19);
00190     MySerial.putc(y);
00191 }
00192 
00193 
00194 
00195 void SparkFunSerialGraphicLCD::printf(const char *msg, ...) {
00196     va_list args;
00197     va_start(args, msg);    
00198     MySerial.printf(msg, va_arg(args, char*));
00199     va_end(args);
00200     wait_ms(100);
00201 }