Committer:
chag
Date:
Wed Feb 22 08:12:46 2012 +0000
Revision:
4:0c943e6ba349
Parent:
3:889836485429
revised to use new firmware

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chag 0:4b9e26cee71f 1 #include "stdarg.h"
chag 0:4b9e26cee71f 2 #include "mbed.h"
chag 0:4b9e26cee71f 3 #include "SparkFunSerialGraphicLCD.h"
chag 0:4b9e26cee71f 4
chag 0:4b9e26cee71f 5
chag 0:4b9e26cee71f 6 SparkFunSerialGraphicLCD::SparkFunSerialGraphicLCD(PinName tx, PinName rx = NC) : MySerial(tx, rx) {
chag 4:0c943e6ba349 7 MySerial.baud(9600);
chag 0:4b9e26cee71f 8 clear();
chag 4:0c943e6ba349 9 setBacklight(100);
chag 4:0c943e6ba349 10 setFont(0);
chag 4:0c943e6ba349 11 setAutoCRLF(false);
chag 4:0c943e6ba349 12 setReverse(false);
chag 0:4b9e26cee71f 13 }
chag 0:4b9e26cee71f 14
chag 0:4b9e26cee71f 15 void SparkFunSerialGraphicLCD::clear() {
chag 0:4b9e26cee71f 16 MySerial.putc(0x7C);
chag 0:4b9e26cee71f 17 MySerial.putc(0x00);
chag 0:4b9e26cee71f 18 }
chag 0:4b9e26cee71f 19
chag 3:889836485429 20 void SparkFunSerialGraphicLCD::setDebug(unsigned char level) {
chag 0:4b9e26cee71f 21 MySerial.putc(0x7C);
chag 3:889836485429 22 MySerial.putc(0x01);
chag 3:889836485429 23 MySerial.putc(level);
chag 0:4b9e26cee71f 24 }
chag 0:4b9e26cee71f 25
chag 0:4b9e26cee71f 26 void SparkFunSerialGraphicLCD::setBacklight(unsigned char intensity) {
chag 0:4b9e26cee71f 27 MySerial.putc(0x7C);
chag 0:4b9e26cee71f 28 MySerial.putc(0x02);
chag 0:4b9e26cee71f 29 MySerial.putc(intensity);
chag 3:889836485429 30 }
chag 3:889836485429 31
chag 3:889836485429 32 void SparkFunSerialGraphicLCD::drawCircle(unsigned char x, unsigned char y, unsigned char radius, bool set) {
chag 3:889836485429 33 MySerial.putc(0x7C);
chag 3:889836485429 34 MySerial.putc(0x03);
chag 3:889836485429 35 MySerial.putc(x);
chag 3:889836485429 36 MySerial.putc(y);
chag 3:889836485429 37 MySerial.putc(radius);
chag 3:889836485429 38 MySerial.putc(set);
chag 3:889836485429 39 }
chag 3:889836485429 40
chag 4:0c943e6ba349 41 void SparkFunSerialGraphicLCD::setAutoCRLF(bool enable) {
chag 3:889836485429 42 MySerial.putc(0x7C);
chag 3:889836485429 43 MySerial.putc(0x04);
chag 4:0c943e6ba349 44 MySerial.putc(enable);
chag 3:889836485429 45 }
chag 3:889836485429 46
chag 3:889836485429 47 void SparkFunSerialGraphicLCD::eraseBlock(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1) {
chag 3:889836485429 48 MySerial.putc(0x7C);
chag 3:889836485429 49 MySerial.putc(0x05);
chag 3:889836485429 50 MySerial.putc(x0);
chag 3:889836485429 51 MySerial.putc(y0);
chag 3:889836485429 52 MySerial.putc(x1);
chag 3:889836485429 53 MySerial.putc(y1);
chag 0:4b9e26cee71f 54 }
chag 0:4b9e26cee71f 55
chag 3:889836485429 56 void SparkFunSerialGraphicLCD::reset() {
chag 0:4b9e26cee71f 57 MySerial.putc(0x7C);
chag 3:889836485429 58 MySerial.putc(0x06);
chag 3:889836485429 59 }
chag 3:889836485429 60
chag 4:0c943e6ba349 61 void SparkFunSerialGraphicLCD::setBaud(unsigned char baud) {
chag 4:0c943e6ba349 62 if(baud < 1) baud = 1;
chag 4:0c943e6ba349 63 else if(baud > 6) baud = 6;
chag 4:0c943e6ba349 64
chag 0:4b9e26cee71f 65 MySerial.putc(0x7C);
chag 3:889836485429 66 MySerial.putc(0x07);
chag 4:0c943e6ba349 67 MySerial.putc(baud);
chag 4:0c943e6ba349 68 switch(baud) {
chag 4:0c943e6ba349 69 case 1:
chag 4:0c943e6ba349 70 MySerial.baud(4800);
chag 4:0c943e6ba349 71 break;
chag 4:0c943e6ba349 72 case 2:
chag 4:0c943e6ba349 73 MySerial.baud(9600);
chag 4:0c943e6ba349 74 break;
chag 4:0c943e6ba349 75 case 3:
chag 4:0c943e6ba349 76 MySerial.baud(19200);
chag 4:0c943e6ba349 77 break;
chag 4:0c943e6ba349 78 case 4:
chag 4:0c943e6ba349 79 MySerial.baud(38400);
chag 4:0c943e6ba349 80 break;
chag 4:0c943e6ba349 81 case 5:
chag 4:0c943e6ba349 82 MySerial.baud(57600);
chag 4:0c943e6ba349 83 break;
chag 4:0c943e6ba349 84 case 6:
chag 4:0c943e6ba349 85 MySerial.baud(115200);
chag 4:0c943e6ba349 86 break;
chag 4:0c943e6ba349 87 }
chag 0:4b9e26cee71f 88 }
chag 0:4b9e26cee71f 89
chag 4:0c943e6ba349 90 void SparkFunSerialGraphicLCD::setFont(unsigned char font) {
chag 3:889836485429 91 MySerial.putc(0x7C);
chag 3:889836485429 92 MySerial.putc(0x08);
chag 4:0c943e6ba349 93 MySerial.putc(font);
chag 3:889836485429 94 }
chag 3:889836485429 95
chag 3:889836485429 96 void SparkFunSerialGraphicLCD::setFontMode(unsigned char mode) {
chag 0:4b9e26cee71f 97 MySerial.putc(0x7C);
chag 3:889836485429 98 MySerial.putc(0x0A);
chag 3:889836485429 99 MySerial.putc(mode);
chag 3:889836485429 100 }
chag 3:889836485429 101
chag 3:889836485429 102 void SparkFunSerialGraphicLCD::drawSprite(unsigned char x, unsigned char y, unsigned char sprite, unsigned char mode) {
chag 3:889836485429 103 MySerial.putc(0x7C);
chag 3:889836485429 104 MySerial.putc(0x0B);
chag 0:4b9e26cee71f 105 MySerial.putc(x);
chag 0:4b9e26cee71f 106 MySerial.putc(y);
chag 3:889836485429 107 MySerial.putc(sprite);
chag 3:889836485429 108 MySerial.putc(mode);
chag 0:4b9e26cee71f 109 }
chag 0:4b9e26cee71f 110
chag 0:4b9e26cee71f 111 void SparkFunSerialGraphicLCD::drawLine(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, bool set) {
chag 0:4b9e26cee71f 112 MySerial.putc(0x7C);
chag 0:4b9e26cee71f 113 MySerial.putc(0x0C);
chag 0:4b9e26cee71f 114 MySerial.putc(x0);
chag 0:4b9e26cee71f 115 MySerial.putc(y0);
chag 0:4b9e26cee71f 116 MySerial.putc(x1);
chag 0:4b9e26cee71f 117 MySerial.putc(y1);
chag 0:4b9e26cee71f 118 MySerial.putc(set);
chag 0:4b9e26cee71f 119 }
chag 0:4b9e26cee71f 120
chag 3:889836485429 121 void SparkFunSerialGraphicLCD::uploadSprite(unsigned char sprite, unsigned char width, unsigned char height, unsigned char* data) {
chag 3:889836485429 122 error("method not implemented");
chag 0:4b9e26cee71f 123 MySerial.putc(0x7C);
chag 3:889836485429 124 MySerial.putc(0x0D);
chag 3:889836485429 125 MySerial.putc(sprite);
chag 3:889836485429 126 MySerial.putc(width);
chag 3:889836485429 127 MySerial.putc(height);
chag 0:4b9e26cee71f 128 }
chag 0:4b9e26cee71f 129
chag 0:4b9e26cee71f 130 void SparkFunSerialGraphicLCD::drawBox(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, bool set) {
chag 0:4b9e26cee71f 131 MySerial.putc(0x7C);
chag 0:4b9e26cee71f 132 MySerial.putc(0x0F);
chag 0:4b9e26cee71f 133 MySerial.putc(x0);
chag 0:4b9e26cee71f 134 MySerial.putc(y0);
chag 0:4b9e26cee71f 135 MySerial.putc(x1);
chag 0:4b9e26cee71f 136 MySerial.putc(y1);
chag 0:4b9e26cee71f 137 MySerial.putc(set);
chag 0:4b9e26cee71f 138 }
chag 0:4b9e26cee71f 139
chag 3:889836485429 140 void SparkFunSerialGraphicLCD::setPixel(unsigned char x, unsigned char y, bool set) {
chag 0:4b9e26cee71f 141 MySerial.putc(0x7C);
chag 3:889836485429 142 MySerial.putc(0x10);
chag 3:889836485429 143 MySerial.putc(x);
chag 3:889836485429 144 MySerial.putc(y);
chag 3:889836485429 145 MySerial.putc(set);
chag 3:889836485429 146 }
chag 3:889836485429 147 void SparkFunSerialGraphicLCD::drawFilledBox(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, unsigned char fill) {
chag 3:889836485429 148 MySerial.putc(0x7C);
chag 3:889836485429 149 MySerial.putc(0x12);
chag 0:4b9e26cee71f 150 MySerial.putc(x0);
chag 0:4b9e26cee71f 151 MySerial.putc(y0);
chag 0:4b9e26cee71f 152 MySerial.putc(x1);
chag 0:4b9e26cee71f 153 MySerial.putc(y1);
chag 3:889836485429 154 MySerial.putc(fill);
chag 0:4b9e26cee71f 155 }
chag 0:4b9e26cee71f 156
chag 3:889836485429 157
chag 4:0c943e6ba349 158 void SparkFunSerialGraphicLCD::setReverse(bool enable) {
chag 3:889836485429 159 MySerial.putc(0x7C);
chag 3:889836485429 160 MySerial.putc(0x14);
chag 4:0c943e6ba349 161 MySerial.putc(enable);
chag 3:889836485429 162 }
chag 3:889836485429 163
chag 4:0c943e6ba349 164 /*void SparkFunSerialGraphicLCD::setSplash(bool enable) {
chag 3:889836485429 165 MySerial.putc(0x7C);
chag 3:889836485429 166 MySerial.putc(0x15);
chag 4:0c943e6ba349 167 MySerial.putc(enable);
chag 4:0c943e6ba349 168 }*/
chag 3:889836485429 169
chag 3:889836485429 170 void SparkFunSerialGraphicLCD::bitblt(unsigned char x, unsigned char y, unsigned char mode, unsigned char w, unsigned char h, unsigned char* data) {
chag 3:889836485429 171 error("method not implemented");
chag 3:889836485429 172 MySerial.putc(0x7C);
chag 3:889836485429 173 MySerial.putc(0x0D);
chag 3:889836485429 174 MySerial.putc(x);
chag 3:889836485429 175 MySerial.putc(y);
chag 3:889836485429 176 MySerial.putc(mode);
chag 3:889836485429 177 MySerial.putc(w);
chag 3:889836485429 178 MySerial.putc(h);
chag 3:889836485429 179 }
chag 3:889836485429 180
chag 3:889836485429 181 void SparkFunSerialGraphicLCD::setCursorX(unsigned char x) {
chag 3:889836485429 182 MySerial.putc(0x7C);
chag 3:889836485429 183 MySerial.putc(0x18);
chag 3:889836485429 184 MySerial.putc(x);
chag 3:889836485429 185 }
chag 3:889836485429 186
chag 3:889836485429 187 void SparkFunSerialGraphicLCD::setCursorY(unsigned char y) {
chag 3:889836485429 188 MySerial.putc(0x7C);
chag 3:889836485429 189 MySerial.putc(0x19);
chag 3:889836485429 190 MySerial.putc(y);
chag 3:889836485429 191 }
chag 3:889836485429 192
chag 3:889836485429 193
chag 3:889836485429 194
chag 0:4b9e26cee71f 195 void SparkFunSerialGraphicLCD::printf(const char *msg, ...) {
chag 0:4b9e26cee71f 196 va_list args;
chag 0:4b9e26cee71f 197 va_start(args, msg);
chag 0:4b9e26cee71f 198 MySerial.printf(msg, va_arg(args, char*));
chag 0:4b9e26cee71f 199 va_end(args);
chag 3:889836485429 200 wait_ms(100);
chag 0:4b9e26cee71f 201 }