Simple animation demo 2.

Dependencies:   AkiSpiLcd mbed

Fork of AkiSpiLcd_example by Kazuki Yamamoto

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "animepic.h"
00003 #include "AkiSpiLcd.h"
00004 
00005 /*
00006 1 MOSI     D11
00007 2 MISO     D12
00008 3 SCLK     D13
00009 4 CS(1)    D2  (AkiSpi LCD)
00010 5 CS(2)    D3  (23K256 SRAM)
00011   EXTCOMIN D4
00012   DISP     D5  (Low = Off Display)
00013 */
00014 
00015 #ifdef TARGET_KL46Z
00016 AkiSpiLcd lcd(D11, D12, D13, D2, D3);
00017 #endif
00018 
00019 extern const uint8_t anime0[];
00020 extern const uint8_t anime1[];
00021 extern const uint8_t anime2[];
00022 extern const uint8_t anime3[];
00023 extern const uint8_t anime4[];
00024 extern const uint8_t anime5[];
00025 extern const uint8_t anime6[];
00026 extern const uint8_t anime7[];
00027 extern const uint8_t anime8[];
00028 extern const uint8_t anime9[];
00029 
00030 int main()
00031 {
00032     const int randline[240] = {
00033         0xBE, 0xAE, 0x64, 0xD4, 0xB8, 0xA9, 0xD5, 0xC5, 0x0D, 0x41, 0x44, 0xD2, 0xD7, 0x15, 0x62, 0x65, 
00034         0xBB, 0xC6, 0x29, 0x14, 0x66, 0x51, 0xBC, 0xDE, 0x7B, 0xE5, 0xEF, 0xC0, 0x68, 0x2E, 0x91, 0xA0, 
00035         0x96, 0x71, 0x8B, 0x8A, 0x9D, 0x5D, 0xDF, 0x48, 0x56, 0x04, 0x49, 0x60, 0xA5, 0xEA, 0x7F, 0xD8, 
00036         0x22, 0xD3, 0x33, 0xC2, 0xB3, 0xCA, 0x28, 0x1C, 0x30, 0x89, 0x2B, 0x34, 0x95, 0x83, 0x11, 0xA3, 
00037         0x78, 0x80, 0x2C, 0xA7, 0xC7, 0x57, 0x55, 0x5F, 0x97, 0x00, 0x1A, 0x70, 0x7E, 0x73, 0xED, 0x52, 
00038         0xA6, 0x6C, 0xA4, 0xAA, 0xD6, 0x81, 0x24, 0x74, 0x21, 0xB0, 0x5E, 0x0C, 0x46, 0x87, 0x63, 0xD9, 
00039         0xE1, 0xA8, 0xBF, 0xB7, 0x8F, 0x0A, 0x1D, 0x40, 0xDD, 0x4D, 0x58, 0x86, 0xEC, 0xE0, 0x1F, 0x13, 
00040         0x53, 0x9E, 0xC3, 0xE9, 0xCB, 0x20, 0xCD, 0x17, 0x50, 0xA1, 0x5C, 0xAB, 0x25, 0xEE, 0x47, 0x3F, 
00041         0x35, 0xC9, 0x9B, 0x3E, 0xC4, 0x3D, 0x3C, 0xCC, 0x8D, 0x4E, 0xBD, 0x4F, 0xBA, 0x01, 0x59, 0x6B, 
00042         0x32, 0x61, 0x26, 0x98, 0x10, 0x75, 0xAF, 0x2A, 0x03, 0x38, 0x88, 0x7D, 0x5B, 0x85, 0x6A, 0xDC, 
00043         0x05, 0x84, 0x9A, 0x43, 0xA2, 0x6F, 0xB1, 0x5A, 0xAD, 0xEB, 0x6E, 0x3B, 0x02, 0xB2, 0xE4, 0xE2, 
00044         0x69, 0xDB, 0xC1, 0x12, 0x42, 0x27, 0x2F, 0x31, 0x90, 0xAC, 0xB9, 0x2D, 0x09, 0x16, 0xE7, 0x8E, 
00045         0xB6, 0x77, 0xB4, 0x67, 0x4B, 0x9C, 0x3A, 0x82, 0x4C, 0x08, 0xDA, 0x23, 0xB5, 0xC8, 0x7A, 0x39, 
00046         0xE8, 0x45, 0xE6, 0x36, 0x92, 0xD1, 0xCE, 0x93, 0x0E, 0x4A, 0x76, 0x7C, 0x79, 0xD0, 0x1E, 0xE3, 
00047         0x1B, 0x37, 0x0F, 0x6D, 0x07, 0xCF, 0x94, 0x72, 0x54, 0x99, 0x06, 0x19, 0x0B, 0x18, 0x9F, 0x8C, 
00048     };
00049     const uint8_t blank[50] = {
00050         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
00051         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
00052         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
00053         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
00054         0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 
00055     };
00056 
00057     wait_ms(1);
00058     lcd.cls();
00059 
00060     while(1) {
00061 
00062         wait_ms(1000);
00063 
00064         for(int i=0; i<240; i++) {
00065             lcd.directUpdateMulti(i,1,(uint8_t*)(anime0+50*i));
00066             wait_ms(5);
00067         }
00068 
00069         for(int i=0; i<240; i++) {
00070             lcd.directUpdateMulti(i,1,(uint8_t*)(anime1+50*i));
00071             wait_ms(5);
00072         }
00073 
00074         wait_ms(500);
00075 
00076         for(int i=0; i<240; i++) {
00077             lcd.directUpdateMulti(i,1,(uint8_t*)(anime2+50*i));
00078             wait_ms(5);
00079         }
00080 
00081         for(int i=0; i<240; i++) {
00082             lcd.directUpdateMulti(i,1,(uint8_t*)(anime3+50*i));
00083             wait_ms(5);
00084         }
00085 
00086         wait_ms(500);
00087 
00088         for(int i=0; i<240; i++) {
00089             lcd.directUpdateMulti(i,1,(uint8_t*)(anime4+50*i));
00090             wait_ms(5);
00091         }
00092 
00093         wait_ms(250);
00094 
00095         for(int i=0; i<240; i++) {
00096             lcd.directUpdateMulti(i,1,(uint8_t*)(anime5+50*i));
00097             wait_ms(5);
00098         }
00099 
00100         wait_ms(250);
00101 
00102         for(int i=0; i<240; i++) {
00103             lcd.directUpdateMulti(i,1,(uint8_t*)(anime6+50*i));
00104             wait_ms(5);
00105         }
00106 
00107         wait_ms(1000);
00108 
00109         for(int i=0; i<240; i++) {
00110             lcd.directUpdateMulti(i,1,(uint8_t*)(anime7+50*i));
00111             wait_ms(5);
00112         }
00113 
00114         for(int i=0; i<240; i++) {
00115             lcd.directUpdateMulti(i,1,(uint8_t*)(anime8+50*i));
00116             wait_ms(5);
00117         }
00118 
00119         for(int i=0; i<204; i++) {
00120             lcd.directUpdateMulti(i,1,(uint8_t*)(anime9+50*i));
00121             wait_ms(5);
00122         }
00123 
00124         wait(1);
00125 
00126         lcd.directUpdateMulti(0,240,(uint8_t*)(anime9));
00127 
00128         wait(15);
00129 
00130         for(int i=0; i<240; i++) {
00131             int l = randline[i];
00132             lcd.directUpdateMulti(l,1,(uint8_t*)(blank));
00133             wait_ms(5);
00134         }
00135 
00136     }
00137 }