work fine

Dependencies:   mbed

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