Li Weiyi
/
LED_DZ
work fine
Diff: main.cpp
- Revision:
- 2:487a727d6181
- Parent:
- 1:14b7c3a3ec60
--- a/main.cpp Wed Jun 01 13:38:30 2016 +0000 +++ b/main.cpp Thu Jun 02 01:07:50 2016 +0000 @@ -28,24 +28,20 @@ // @老潘orz #define _MAIN_CPP - #include "mbed.h" #include "MicroduinoPinNames.h" #include "Microduino_Matrix.h" +#include "SomeCartoon.h" uint8_t Addr[MatrixPix_X][MatrixPix_Y] = { { 64} }; -Matrix display = Matrix(Addr); -AnalogIn gAnalogIn(A0); -Timer g_Timer; - -static const uint8_t logoA[] = { //低位在前 逐行 +static uint8_t logoA[] = { //低位在前 逐行 0x00, 0x66, 0x66, 0xDB, 0xDB, 0xDB, 0xDB, 0x00 }; -static const uint8_t logoB[] = { //BMP File +static uint8_t logoB[] = { //BMP File 0x42, 0x4D, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x20, 0x2E, 0x00, 0x00, 0x20, 0x2E, 0x00, 0x00, 0x00, 0x00, @@ -64,35 +60,13 @@ 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDD, 0x00, 0x00, }; -DigitalOut myled(D13); #define delay wait_ms -void randomSeed(unsigned long seed) -{ - if (seed != 0) { - //srandom(seed); - srand(seed); - } -} +DigitalOut myled(D13); +Matrix display(Addr); +AnalogIn gAnalogIn(A0); +Timer g_Timer; +Serial pc(D1, D0); // tx, rx -long random(long howbig) -{ - if (howbig == 0) { - return 0; - } - return rand() % howbig; -} - -long random(long howsmall, long howbig) -{ - if (howsmall >= howbig) { - return howsmall; - } - long diff = howbig - howsmall; - return random(diff) + howsmall; -} - -Serial pc(P0_4,P0_0); -#if 0 int main() { int i; @@ -100,14 +74,13 @@ myled = 0; pc.baud(115200); g_Timer.start(); -#if 1 - //getDeviceAddr + for (int a = 0; a < display.getMatrixNum(); a++) { pc.printf("device add = %d", display.getDeviceAddr(a)); pc.printf(" "); } pc.printf("\r\n"); -#endif + myled = !myled; display.clearDisplay(); //setLedColor @@ -115,7 +88,19 @@ for (int x = 0; x < display.getWidth() * 8; x++) { randomSeed(x); display.setLedColor(x, y, random(0, 255), random(0, 255), random(0, 255)); //x, y, r, g, b - delay(1000); + delay(20); + } + } + delay(1000); + myled = !myled; + + //setLed + display.clearDisplay(); + display.setColor(255, 0, 0); + for (int y = 0; y < display.getHeight() * 8; y++) { + for (int x = 0; x < display.getWidth() * 8; x++) { + display.setLed(x, y, true); //x, y, sta + delay(5); } } delay(1000); @@ -132,10 +117,10 @@ } delay(1000); myled = !myled; - + //setLed display.clearDisplay(); - display.setColor(255, 0, 0); + display.setColor(0, 0, 255); for (int y = 0; y < display.getHeight() * 8; y++) { for (int x = 0; x < display.getWidth() * 8; x++) { display.setLed(x, y, true); //x, y, sta @@ -167,8 +152,14 @@ display.clearDisplay(); myled = !myled; while(1) { + display.clearDisplay(); + drawCartoon01(); + display.clearDisplay(); + drawCartoon02(); + display.clearDisplay(); + drawCartoon03(); + display.setColor(random(0, 255), random(0, 255), random(0, 255)); - display.drawBox(0, 0, 8, 8); //x,y,w,h delay(2000); display.clearDisplay(); @@ -248,183 +239,4 @@ display.writeString(buffer_data, MODE_H, 50, 1); myled = !myled; } -} -#elif 0 -int main() -{ - int i; - char buf[32]; - myled = 0; - pc.baud(115200); - g_Timer.start(); - pc.printf("rand max = %d\r\n", RAND_MAX); -#if 1 - //getDeviceAddr - for (int a = 0; a < display.getMatrixNum(); a++) { - pc.printf("device add = %d", display.getDeviceAddr(a)); - pc.printf(" "); - } - pc.printf("\r\n"); - //wait(5.0); - pc.printf("Let us go into while\r\n"); -#endif - while (1) { - myled = 1; - //wait(2.0); - //pc.printf("clearDisplay....\r\n"); - display.clearDisplay(); - int16_t height = display.getHeight(); - int16_t width = display.getWidth(); - //pc.printf("height = %d, width = %d\r\n", height, width); - for (int y = 0; y < display.getHeight() * 8; y++) { - for (int x = 0; x < display.getWidth() * 8; x++) { - randomSeed(23); - //display.setLedColor(x, y, random(0, 255), random(0, 255), random(0, 255)); //x, y, r, g, b - display.setLedColor(x, y, 156, 200, 56); //x, y, r, g, b - wait_ms(5); - } - } - myled = 0; - wait(1); - } -} -#elif 0 -I2C i2c(P0_11, P0_10); -void main() -{ - pc.baud(115200); - pc.printf("Hello Microduino!\r\n"); - wait(3.5); - i2c.frequency(400000); - //i2c.start(); - uint8_t address = 64; - char cmd = 0x60; - int ret = i2c.write(address<<1, &cmd, 1, false); - //int ret = i2c.write(0x60); - pc.printf("clear led ret = %d\r\n", ret); - //i2c.stop(); - - uint8_t _value_r = random(0, 255); - uint8_t _value_g = random(0, 255); - uint8_t _value_b = random(0, 255); - uint8_t temp[4]; - //temp[0] = 0x80 | (_row << 3) | _col; - temp[1] = _value_b / 8; - temp[2] = 0x20 | _value_g / 8; - temp[3] = 0x40 | _value_r / 8; - randomSeed(23); - while (1) { - i2c.write(address<<1, &cmd, 1, false); - wait_ms(900); - myled = !myled; - for (int y = 0; y < display.getHeight() * 8; y++) { - for (int x = 0; x < display.getWidth() * 8; x++) { - //randomSeed(23); - //display.setLedColor(x, y, random(0, 255), random(0, 255), random(0, 255)); //x, y, r, g, b - //display.setLedColor(x, y, 156, 200, 56); //x, y, r, g, b - _value_r = random(0, 255); - _value_g = random(0, 255); - _value_b = random(0, 255); - temp[0] = 0x80 | (x << 3) | y; - temp[1] = _value_b / 8; - temp[2] = 0x20 | _value_g / 8; - temp[3] = 0x40 | _value_r / 8; - i2c.write(address<<1, (char*)temp, 4, false); - wait_ms(5); - } - } - wait(1.9); - } -} -#elif 0 -void main() -{ - randomSeed(gAnalogIn.read_u16()); - while (1) { - display.setColor(random(0, 255), random(0, 255), random(0, 255)); - display.drawBox(0, 0, 8, 8); //x,y,w,h - delay(2000); - display.clearDisplay(); - delay(599); - //randomSeed(gAnalogIn.read_u16()); - } -} -#else -uint8_t donghua[128] = { - 0,0, 1,0, 2,0, 3,0, 4,0, 5,0, 6,0, 7,0, - 7,1, 7,2, 7,3, 7,4, 7,5, 7,6, 7,7, - 6,7, 5,7, 4,7, 3,7, 2,7, 1,7, 0,7, - 0,6, 0,5, 0,4, 0,3, 0,2, 0,1, - 1,1, 2,1, 3,1, 4,1, 5,1, 6,1, -}; -void main() -{ - uint8_t r,g,b; - randomSeed(gAnalogIn.read_u16()); - display.clearDisplay(); - int8_t x = 0; - int8_t y = 0; - int8_t xMax = 7; - int8_t yMax = 7; - int8_t xMin = 0; - int8_t yMin = 0; - uint8_t state = 0; - r = random(0, 255); - g = random(0, 255); - b = random(0, 255); - while (true) { - display.setLedColor(x, y, r, g, b); //x, y, r, g, b - delay(50); - if (x == 3 && y == 4) { - x = 0; - y = 0; - xMax = 7; - yMax = 7; - xMin = 0; - yMin = 0; - display.clearDisplay(); - delay(500); - state = 0; - r = random(0, 255); - g = random(0, 255); - b = random(0, 255); - display.setLedColor(0, 0, r, g, b); //x, y, r, g, b - //continue; - } - - if (state == 0) { - x++; - if (x > xMax) { - state = 1; - x = xMax; - y++; - } - } else if (state == 1) { - y++; - if (y > yMax) { - state = 2; - y = yMax; - x--; - } - } else if (state == 2) { - x--; - if (x < xMin) { - state = 3; - x = xMin; - y--; - } - } else if (state == 3) { - y--; - if (y == yMin) { - state = 0; - y = yMin+1; - x++; - xMax--; - yMax--; - xMin++; - yMin++; - } - } - } -} -#endif \ No newline at end of file +} \ No newline at end of file