work fine

Dependencies:   mbed

Committer:
lixianyu
Date:
Tue May 31 15:32:03 2016 +0000
Revision:
0:5ca227682ee7
Child:
1:14b7c3a3ec60
???????(Pass compile!)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lixianyu 0:5ca227682ee7 1 // 本作品采用知识共享 署名-非商业性使用-相同方式共享 3.0 未本地化版本 许可协议进行许可
lixianyu 0:5ca227682ee7 2 // 访问 http://creativecommons.org/licenses/by-nc-sa/3.0/ 查看该许可协议
lixianyu 0:5ca227682ee7 3 // ==============
lixianyu 0:5ca227682ee7 4
lixianyu 0:5ca227682ee7 5 // 版权所有:
lixianyu 0:5ca227682ee7 6 // @老潘orz wasdpkj@hotmail.com
lixianyu 0:5ca227682ee7 7 // ==============
lixianyu 0:5ca227682ee7 8
lixianyu 0:5ca227682ee7 9 // Microduino-IDE
lixianyu 0:5ca227682ee7 10 // ==============
lixianyu 0:5ca227682ee7 11 // Microduino Getting start:
lixianyu 0:5ca227682ee7 12 // http://www.microduino.cc/download/
lixianyu 0:5ca227682ee7 13
lixianyu 0:5ca227682ee7 14 // Microduino IDE Support:
lixianyu 0:5ca227682ee7 15 // https://github.com/wasdpkj/Microduino-IDE-Support/
lixianyu 0:5ca227682ee7 16
lixianyu 0:5ca227682ee7 17 // ==============
lixianyu 0:5ca227682ee7 18 // Microduino wiki:
lixianyu 0:5ca227682ee7 19 // http://wiki.microduino.cc
lixianyu 0:5ca227682ee7 20
lixianyu 0:5ca227682ee7 21 // ==============
lixianyu 0:5ca227682ee7 22 // E-mail:
lixianyu 0:5ca227682ee7 23 // Kejia Pan
lixianyu 0:5ca227682ee7 24 // pankejia@microduino.cc
lixianyu 0:5ca227682ee7 25
lixianyu 0:5ca227682ee7 26 // ==============
lixianyu 0:5ca227682ee7 27 // Weibo:
lixianyu 0:5ca227682ee7 28 // @老潘orz
lixianyu 0:5ca227682ee7 29
lixianyu 0:5ca227682ee7 30 #define _MAIN_CPP
lixianyu 0:5ca227682ee7 31
lixianyu 0:5ca227682ee7 32 #include "mbed.h"
lixianyu 0:5ca227682ee7 33 #include "MicroduinoPinNames.h"
lixianyu 0:5ca227682ee7 34 #include "Microduino_Matrix.h"
lixianyu 0:5ca227682ee7 35
lixianyu 0:5ca227682ee7 36 uint8_t Addr[MatrixPix_X][MatrixPix_Y] = {
lixianyu 0:5ca227682ee7 37 { 64}
lixianyu 0:5ca227682ee7 38 };
lixianyu 0:5ca227682ee7 39
lixianyu 0:5ca227682ee7 40 Matrix display = Matrix(Addr);
lixianyu 0:5ca227682ee7 41 AnalogIn gAnalogIn(A0);
lixianyu 0:5ca227682ee7 42 Timer g_Timer;
lixianyu 0:5ca227682ee7 43
lixianyu 0:5ca227682ee7 44 static const uint8_t logoA[] = { //低位在前 逐行
lixianyu 0:5ca227682ee7 45 0x00, 0x66, 0x66, 0xDB, 0xDB, 0xDB, 0xDB, 0x00
lixianyu 0:5ca227682ee7 46 };
lixianyu 0:5ca227682ee7 47
lixianyu 0:5ca227682ee7 48 static const uint8_t logoB[] = { //BMP File
lixianyu 0:5ca227682ee7 49 0x42, 0x4D, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00,
lixianyu 0:5ca227682ee7 50 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00,
lixianyu 0:5ca227682ee7 51 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x20, 0x2E, 0x00, 0x00, 0x20, 0x2E, 0x00, 0x00, 0x00, 0x00,
lixianyu 0:5ca227682ee7 52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFF, 0xEE, 0xEE, 0xEE,
lixianyu 0:5ca227682ee7 53 0xEE, 0xEE, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0xEE, 0xEE,
lixianyu 0:5ca227682ee7 54 0xEE, 0x4D, 0x8E, 0x65, 0x26, 0x94, 0x50, 0x26, 0x94, 0x50, 0x26, 0x94, 0x50, 0x26, 0x94, 0x50,
lixianyu 0:5ca227682ee7 55 0x24, 0x60, 0x51, 0xEE, 0xEE, 0xDD, 0xEE, 0xEE, 0xEE, 0xDD, 0xBB, 0x99, 0xDD, 0xBB, 0x99, 0x4B,
lixianyu 0:5ca227682ee7 56 0x94, 0xD4, 0x2B, 0x69, 0x96, 0xCC, 0xBB, 0x84, 0xCC, 0xAA, 0x88, 0xFF, 0xEE, 0xDD, 0xFF, 0xEE,
lixianyu 0:5ca227682ee7 57 0xEE, 0xC7, 0xBB, 0x99, 0x50, 0xB2, 0x70, 0x26, 0x94, 0x50, 0x26, 0x94, 0x50, 0x47, 0x94, 0x4D,
lixianyu 0:5ca227682ee7 58 0xCC, 0xAA, 0x88, 0xEE, 0xEE, 0xDD, 0xEE, 0xEE, 0xEE, 0xDB, 0xCC, 0xB3, 0x53, 0xBB, 0x88, 0x53,
lixianyu 0:5ca227682ee7 59 0xBB, 0x88, 0x53, 0xBB, 0x88, 0x26, 0x94, 0x50, 0xB5, 0xAA, 0x92, 0xEE, 0xEE, 0xDD, 0xFF, 0xEE,
lixianyu 0:5ca227682ee7 60 0xEE, 0xDD, 0xDD, 0xCC, 0x53, 0xBB, 0x88, 0x3A, 0xD5, 0x95, 0x53, 0xBB, 0x88, 0x48, 0xAF, 0x50,
lixianyu 0:5ca227682ee7 61 0xCC, 0xAA, 0x99, 0xEE, 0xEE, 0xDD, 0xEE, 0xEE, 0xEE, 0xE2, 0xCB, 0xCD, 0x53, 0xBB, 0x88, 0x53,
lixianyu 0:5ca227682ee7 62 0xBB, 0x88, 0x3A, 0xD5, 0x95, 0x50, 0xB2, 0x70, 0xD6, 0xBB, 0xB1, 0xFF, 0xEE, 0xDD, 0xDD, 0xEE,
lixianyu 0:5ca227682ee7 63 0xEE, 0xEE, 0xEE, 0xEE, 0xFF, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xFF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
lixianyu 0:5ca227682ee7 64 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0x00, 0x00,
lixianyu 0:5ca227682ee7 65 };
lixianyu 0:5ca227682ee7 66
lixianyu 0:5ca227682ee7 67 DigitalOut myled(LED1);
lixianyu 0:5ca227682ee7 68 #define delay wait_ms
lixianyu 0:5ca227682ee7 69 void randomSeed(unsigned long seed)
lixianyu 0:5ca227682ee7 70 {
lixianyu 0:5ca227682ee7 71 if (seed != 0) {
lixianyu 0:5ca227682ee7 72 //srandom(seed);
lixianyu 0:5ca227682ee7 73 srand(seed);
lixianyu 0:5ca227682ee7 74 }
lixianyu 0:5ca227682ee7 75 }
lixianyu 0:5ca227682ee7 76
lixianyu 0:5ca227682ee7 77 long random(long howbig)
lixianyu 0:5ca227682ee7 78 {
lixianyu 0:5ca227682ee7 79 if (howbig == 0) {
lixianyu 0:5ca227682ee7 80 return 0;
lixianyu 0:5ca227682ee7 81 }
lixianyu 0:5ca227682ee7 82 return rand() % howbig;
lixianyu 0:5ca227682ee7 83 }
lixianyu 0:5ca227682ee7 84
lixianyu 0:5ca227682ee7 85 long random(long howsmall, long howbig)
lixianyu 0:5ca227682ee7 86 {
lixianyu 0:5ca227682ee7 87 if (howsmall >= howbig) {
lixianyu 0:5ca227682ee7 88 return howsmall;
lixianyu 0:5ca227682ee7 89 }
lixianyu 0:5ca227682ee7 90 long diff = howbig - howsmall;
lixianyu 0:5ca227682ee7 91 return random(diff) + howsmall;
lixianyu 0:5ca227682ee7 92 }
lixianyu 0:5ca227682ee7 93
lixianyu 0:5ca227682ee7 94 int main()
lixianyu 0:5ca227682ee7 95 {
lixianyu 0:5ca227682ee7 96 int i;
lixianyu 0:5ca227682ee7 97 char buf[32];
lixianyu 0:5ca227682ee7 98 g_Timer.start();
lixianyu 0:5ca227682ee7 99 #if 0
lixianyu 0:5ca227682ee7 100 //getDeviceAddr
lixianyu 0:5ca227682ee7 101 for (int a = 0; a < display.getMatrixNum(); a++) {
lixianyu 0:5ca227682ee7 102 Serial.print(display.getDeviceAddr(a));
lixianyu 0:5ca227682ee7 103 Serial.print(" ");
lixianyu 0:5ca227682ee7 104 }
lixianyu 0:5ca227682ee7 105 Serial.println("");
lixianyu 0:5ca227682ee7 106 #endif
lixianyu 0:5ca227682ee7 107
lixianyu 0:5ca227682ee7 108 display.clearDisplay();
lixianyu 0:5ca227682ee7 109 //setLedColor
lixianyu 0:5ca227682ee7 110 for (int y = 0; y < display.getHeight() * 8; y++) {
lixianyu 0:5ca227682ee7 111 for (int x = 0; x < display.getWidth() * 8; x++) {
lixianyu 0:5ca227682ee7 112 randomSeed(45);
lixianyu 0:5ca227682ee7 113 display.setLedColor(x, y, random(0, 255), random(0, 255), random(0, 255)); //x, y, r, g, b
lixianyu 0:5ca227682ee7 114 delay(5);
lixianyu 0:5ca227682ee7 115 }
lixianyu 0:5ca227682ee7 116 }
lixianyu 0:5ca227682ee7 117 delay(1000);
lixianyu 0:5ca227682ee7 118
lixianyu 0:5ca227682ee7 119 //setLed
lixianyu 0:5ca227682ee7 120 display.clearDisplay();
lixianyu 0:5ca227682ee7 121 display.setColor(0, 255, 0);
lixianyu 0:5ca227682ee7 122 for (int y = 0; y < display.getHeight() * 8; y++) {
lixianyu 0:5ca227682ee7 123 for (int x = 0; x < display.getWidth() * 8; x++) {
lixianyu 0:5ca227682ee7 124 display.setLed(x, y, true); //x, y, sta
lixianyu 0:5ca227682ee7 125 delay(5);
lixianyu 0:5ca227682ee7 126 }
lixianyu 0:5ca227682ee7 127 }
lixianyu 0:5ca227682ee7 128 delay(1000);
lixianyu 0:5ca227682ee7 129
lixianyu 0:5ca227682ee7 130 //setLed
lixianyu 0:5ca227682ee7 131 display.clearDisplay();
lixianyu 0:5ca227682ee7 132 display.setColor(255, 0, 0);
lixianyu 0:5ca227682ee7 133 for (int y = 0; y < display.getHeight() * 8; y++) {
lixianyu 0:5ca227682ee7 134 for (int x = 0; x < display.getWidth() * 8; x++) {
lixianyu 0:5ca227682ee7 135 display.setLed(x, y, true); //x, y, sta
lixianyu 0:5ca227682ee7 136 delay(5);
lixianyu 0:5ca227682ee7 137 }
lixianyu 0:5ca227682ee7 138 }
lixianyu 0:5ca227682ee7 139 delay(1000);
lixianyu 0:5ca227682ee7 140
lixianyu 0:5ca227682ee7 141 display.clearDisplay();
lixianyu 0:5ca227682ee7 142 display.setColor(0, 255, 0);
lixianyu 0:5ca227682ee7 143 display.drawBMP(0, 0, 8, 8, logoA); //x,y,w,h,data
lixianyu 0:5ca227682ee7 144 delay(2000);
lixianyu 0:5ca227682ee7 145
lixianyu 0:5ca227682ee7 146 display.clearDisplay();
lixianyu 0:5ca227682ee7 147 //Windows Bitmap (BMP) file,24bit
lixianyu 0:5ca227682ee7 148 display.drawBMP(0, 0, logoB); //x,y,data
lixianyu 0:5ca227682ee7 149 delay(2000);
lixianyu 0:5ca227682ee7 150
lixianyu 0:5ca227682ee7 151 //clearColor
lixianyu 0:5ca227682ee7 152 display.clearColor();
lixianyu 0:5ca227682ee7 153 //writeString H
lixianyu 0:5ca227682ee7 154 display.writeString("Microduino", MODE_H, 20, 0); //string, MODE, time ,y
lixianyu 0:5ca227682ee7 155 display.clearDisplay();
lixianyu 0:5ca227682ee7 156 //writeString V
lixianyu 0:5ca227682ee7 157 display.writeString("Microduino", MODE_V, 20, 0); //string, MODE, time ,x
lixianyu 0:5ca227682ee7 158 display.clearDisplay();
lixianyu 0:5ca227682ee7 159 while(1) {
lixianyu 0:5ca227682ee7 160 display.setColor(255, 255, 0);
lixianyu 0:5ca227682ee7 161
lixianyu 0:5ca227682ee7 162 display.drawBox(0, 0, 8, 8); //x,y,w,h
lixianyu 0:5ca227682ee7 163 delay(2000);
lixianyu 0:5ca227682ee7 164 display.clearDisplay();
lixianyu 0:5ca227682ee7 165
lixianyu 0:5ca227682ee7 166 display.drawRBox(0, 0, 8, 8, 2); //x,y,w,h,r
lixianyu 0:5ca227682ee7 167 delay(2000);
lixianyu 0:5ca227682ee7 168 display.clearDisplay();
lixianyu 0:5ca227682ee7 169
lixianyu 0:5ca227682ee7 170 display.drawFrame(0, 0, 8, 8); //x,y,w,h
lixianyu 0:5ca227682ee7 171 delay(2000);
lixianyu 0:5ca227682ee7 172 display.clearDisplay();
lixianyu 0:5ca227682ee7 173
lixianyu 0:5ca227682ee7 174 display.drawRFrame(0, 0, 8, 8, 2); //x,y,w,h,r
lixianyu 0:5ca227682ee7 175 delay(2000);
lixianyu 0:5ca227682ee7 176 display.clearDisplay();
lixianyu 0:5ca227682ee7 177
lixianyu 0:5ca227682ee7 178 display.drawCircle(3, 3, 3); //x,y,r
lixianyu 0:5ca227682ee7 179 delay(2000);
lixianyu 0:5ca227682ee7 180 display.clearDisplay();
lixianyu 0:5ca227682ee7 181
lixianyu 0:5ca227682ee7 182 display.drawDisc(3, 3, 3); //x,y,r
lixianyu 0:5ca227682ee7 183 delay(2000);
lixianyu 0:5ca227682ee7 184 display.clearDisplay();
lixianyu 0:5ca227682ee7 185
lixianyu 0:5ca227682ee7 186 display.drawLine(0, 0, 7, 7); //x,y,x1,y1
lixianyu 0:5ca227682ee7 187 delay(2000);
lixianyu 0:5ca227682ee7 188 display.clearDisplay();
lixianyu 0:5ca227682ee7 189
lixianyu 0:5ca227682ee7 190 i = display.getStringWidth("mCookie!");
lixianyu 0:5ca227682ee7 191 display.setColor(255, 255, 0);
lixianyu 0:5ca227682ee7 192 display.setFontMode(MODE_H);
lixianyu 0:5ca227682ee7 193 strcpy(buf, "mCookie!");
lixianyu 0:5ca227682ee7 194 for (int a = display.getWidth() * 8; a > -i - display.getWidth() * 8; a--) {
lixianyu 0:5ca227682ee7 195 display.setCursor(a, 0); //x, y
lixianyu 0:5ca227682ee7 196 display.print(buf);
lixianyu 0:5ca227682ee7 197 delay(20);
lixianyu 0:5ca227682ee7 198 }
lixianyu 0:5ca227682ee7 199 display.clearDisplay();
lixianyu 0:5ca227682ee7 200
lixianyu 0:5ca227682ee7 201 i = display.getStringHeight("mCookie!");
lixianyu 0:5ca227682ee7 202 display.setColor(255, 0, 255);
lixianyu 0:5ca227682ee7 203 display.setFontMode(MODE_V);
lixianyu 0:5ca227682ee7 204 for (int a = display.getHeight() * 8; a > -i - display.getHeight() * 8; a--) {
lixianyu 0:5ca227682ee7 205 display.setCursor(0, a); //x, y
lixianyu 0:5ca227682ee7 206 display.print("mCookie!");
lixianyu 0:5ca227682ee7 207 delay(20);
lixianyu 0:5ca227682ee7 208 }
lixianyu 0:5ca227682ee7 209 display.clearDisplay();
lixianyu 0:5ca227682ee7 210
lixianyu 0:5ca227682ee7 211 //Print
lixianyu 0:5ca227682ee7 212 int timer = g_Timer.read_ms();
lixianyu 0:5ca227682ee7 213 display.setColor(0, 255, 255);
lixianyu 0:5ca227682ee7 214 display.setFontMode(MODE_H);
lixianyu 0:5ca227682ee7 215 while (g_Timer.read_ms() - timer < 5000) {
lixianyu 0:5ca227682ee7 216 display.setCursor(0, 0); //x, y
lixianyu 0:5ca227682ee7 217 display.print((g_Timer.read_ms() - timer) / 100);
lixianyu 0:5ca227682ee7 218 delay(20);
lixianyu 0:5ca227682ee7 219 }
lixianyu 0:5ca227682ee7 220 display.clearDisplay();
lixianyu 0:5ca227682ee7 221
lixianyu 0:5ca227682ee7 222 //String to char*
lixianyu 0:5ca227682ee7 223 String _buffer_data = "Analog(A0):";
lixianyu 0:5ca227682ee7 224 //_buffer_data += analogRead(A0);
lixianyu 0:5ca227682ee7 225 _buffer_data += gAnalogIn.read_u16();
lixianyu 0:5ca227682ee7 226
lixianyu 0:5ca227682ee7 227 char buffer_data[128];
lixianyu 0:5ca227682ee7 228 for (int a = 0; a < 128; a++) {
lixianyu 0:5ca227682ee7 229 buffer_data[a] = NULL;
lixianyu 0:5ca227682ee7 230 }
lixianyu 0:5ca227682ee7 231
lixianyu 0:5ca227682ee7 232 for (int a = 0; a < _buffer_data.length(); a++) {
lixianyu 0:5ca227682ee7 233 buffer_data[a] = _buffer_data[a];
lixianyu 0:5ca227682ee7 234 }
lixianyu 0:5ca227682ee7 235
lixianyu 0:5ca227682ee7 236 display.setColor(255, 255, 255);
lixianyu 0:5ca227682ee7 237 display.clearDisplay();
lixianyu 0:5ca227682ee7 238 display.writeString(buffer_data, MODE_H, 50, 1);
lixianyu 0:5ca227682ee7 239 }
lixianyu 0:5ca227682ee7 240 }