FRA221_2015 / Mbed 2 deprecated Project_PokPakGame

Dependencies:   mbed

Fork of Project_PokPakGame by FRA221_7B

Revision:
5:7041c827932b
Parent:
4:3605c624b64f
Child:
6:ba32ff34ce87
--- a/main.cpp	Sat Dec 05 17:19:21 2015 +0000
+++ b/main.cpp	Sun Dec 06 17:06:18 2015 +0000
@@ -1,5 +1,4 @@
 #include "mbed.h"
-#include "time.h"
 
 SPI DataPack(SPI_MOSI, SPI_MISO, SPI_SCK);
 DigitalOut Latch(D10);
@@ -10,19 +9,23 @@
 DigitalIn UpperButton(D6);
 
 float VR_value0,VR_value1;
-int Base[6][3][3]= {
-    //[6]=[0]_base1,[1]_base2,[2]_base3,[3]_base4,[4]_base5,[5]_base6
+int Base[10][3][3]= {
+    //[6]=[0]_base1,[1]_base2,[2]_base3,[3]_base4,[4]_base5,[5]_base6 ,[6]_baseSS1 ,[7]_baseSS2,[8]_baseSS3 ,[9]_baseSS4
     //[3]=[0]_red,[1]_yello,[2]_green
     {{0x1F,0xFF,0xFF},{0x1F,0x1F,0xFF},{0xFF,0x1F,0xFF}} ,
     {{0x8F,0xFF,0xFF},{0x8F,0x8F,0xFF},{0xFF,0x8F,0xFF}} ,
     {{0xC7,0xFF,0xFF},{0xC7,0xC7,0xFF},{0xFF,0xC7,0xFF}} ,
     {{0xE3,0xFF,0xFF},{0xE3,0xE3,0xFF},{0xFF,0xE3,0xFF}} ,
     {{0xF1,0xFF,0xFF},{0xF1,0xF1,0xFF},{0xFF,0xF1,0xFF}} ,
-    {{0xF8,0xFF,0xFF},{0xF8,0xF8,0xFF},{0xFF,0xF8,0xFF}}
+    {{0xF8,0xFF,0xFF},{0xF8,0xF8,0xFF},{0xFF,0xF8,0xFF}} ,
+    {{0x07,0xFF,0xFF},{0x07,0x07,0xFF},{0xFF,0x07,0xFF}} ,
+    {{0x83,0xFF,0xFF},{0x83,0x83,0xFF},{0xFF,0x83,0xFF}} ,
+    {{0xC1,0xFF,0xFF},{0xC1,0xC1,0xFF},{0xFF,0xC1,0xFF}} ,
+    {{0xE0,0xFF,0xFF},{0xE0,0xE0,0xFF},{0xFF,0xE0,0xFF}}
 };
 int Row[8]= {1,2,4,8,16,32,64,128};
 int Col[8]= {127,191,223,239,247,251,253,254};
-int x,y,up,down,t,way,c;
+int x,y,up,down,t,way,c,citem,ritem,us,ds,chkss,gitem,sstime,n,i,m;
 
 void Count()
 {
@@ -323,7 +326,7 @@
     DataPack.write(0x80);
     wait_us(1);
     Latch=1;
-    wait_ms(500);
+    wait_ms(300);
 
 }
 
@@ -339,7 +342,99 @@
     DataPack.write(0x01);
     wait_us(1);
     Latch=1;
-    wait_ms(500);
+    wait_ms(300);
+}
+
+int ranitem_x()
+{
+    int xrand;
+
+    xrand=ran.read()*1000;
+    xrand=xrand%8;
+
+    return xrand;
+
+}
+
+int ranitem_y()
+{
+    int yrand;
+
+    yrand=ran.read()*1000;
+    yrand=yrand%2;
+
+    if(yrand==0) {
+        yrand=3;
+    } else {
+        yrand=4;
+    }
+
+    return yrand;
+
+}
+
+void ranitem(int xrand,int yrand)
+{
+    Latch=0;
+    DataPack.write(Col[xrand]);
+    wait_us(1);
+    DataPack.write(Col[xrand]);
+    wait_us(1);
+    DataPack.write(Col[xrand]);
+    wait_us(1);
+    DataPack.write(Row[yrand]);
+    wait_us(1);
+    Latch=1;
+}
+
+//color >> red=0 , yello=1 , green=2
+int BaseUnderSS(int color)
+{
+    VR_value0 = VR0.read();
+    VR_value0 = VR_value0*4;
+
+    if(VR_value0<=1) {
+        //base1
+        BaseColorUnder(6,color);
+        return 1;
+    } else if(VR_value0>1&&VR_value0<=2) {
+        //base2
+        BaseColorUnder(7,color);
+        return 2;
+    } else if(VR_value0>2&&VR_value0<=3) {
+        //base3
+        BaseColorUnder(8,color);
+        return 3;
+    } else if(VR_value0>3&&VR_value0<=4) {
+        //base4
+        BaseColorUnder(9,color);
+        return 4;
+    }
+}
+
+//color >> red=0 , yello=1 , green=2
+int BaseUpperSS(int color)
+{
+    VR_value1 = VR1.read();
+    VR_value1 = VR_value1*4;
+
+    if(VR_value1<=1) {
+        //base1
+        BaseColorUpper(6,color);
+        return 1;
+    } else if(VR_value1>1&&VR_value1<=2) {
+        //base2
+        BaseColorUpper(7,color);
+        return 2;
+    } else if(VR_value1>2&&VR_value1<=3) {
+        //base3
+        BaseColorUpper(8,color);
+        return 3;
+    } else if(VR_value1>3&&VR_value1<=4) {
+        //base4
+        BaseColorUpper(9,color);
+        return 4;
+    }
 }
 
 int main()
@@ -347,15 +442,21 @@
 
     DataPack.frequency(100000);
     DataPack.format(8,0);
-    way=0;
-    srand(time(NULL));
+
     int chk,lifeup=2,lifeun=2;
+    int xrand,yrand;
 
     chk=ran.read()*1000;
     chk=chk%2;
 
-    //Count();
+    Count();
+
     while(1) {
+        us=0;
+        ds=0;
+        chkss=0;
+        gitem=0;
+        way=0;
         while(1) {
             if(chk==0) {
                 if(UnderStart(lifeun)==1) {
@@ -370,6 +471,13 @@
                 BaseUnder(lifeun);
             }
         }
+
+        citem=0;
+        ritem=ran.read()*1000;
+        ritem=(ritem%5)+1;
+        xrand=ranitem_x();
+        yrand=ranitem_y();
+
         while(1) {
             if(chk==0) {
                 for(y=2; y<7; y++) {
@@ -378,9 +486,226 @@
                     }
 
                     x=x+way;
-                    for(t=0; t<800; t++) {
-                        BaseUnder(lifeun);
-                        up=BaseUpper(lifeup);
+                    for(t=0; t<600; t++) {
+                        if(citem>ritem&&gitem!=1) {
+                            ranitem(xrand,yrand);
+                            chkss=1;
+                        }
+
+                        Latch=0;
+                        DataPack.write(Col[x]);
+                        wait_us(1);
+                        DataPack.write(0xFF);
+                        wait_us(1);
+                        DataPack.write(Col[x]);
+                        wait_us(1);
+                        DataPack.write(Row[y]);
+                        wait_us(1);
+                        Latch=1;
+
+                        if(x==xrand&&y==yrand&&chkss==1&&gitem!=1) {
+                            ds=1;
+                            gitem=1;
+                            sstime=0;
+                        }
+
+                        if(ds==1) {
+                            BaseUnderSS(lifeun);
+                            up=BaseUpper(lifeup);
+                        } else if(us==1) {
+                            BaseUnder(lifeun);
+                            up=BaseUpperSS(lifeup);
+                        } else {
+                            BaseUnder(lifeun);
+                            up=BaseUpper(lifeup);
+                        }
+                    }
+                }
+                chk=1;
+            }
+            if(us==1) {
+                if(x==0) {
+                    if(up>1) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    }
+                    way=-1;
+                }
+                if(x==1) {
+                    if(up>2) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==1) {
+                        way=-1;
+                    } else way=-1;
+                }
+                if(x==2) {
+                    if(up>3) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==1) {
+                        way=0;
+                    } else if(up==2) {
+                        way=-1;
+                    } else way=-1;
+                }
+                if(x==3) {
+                    if(up==1) {
+                        way=1;
+                    } else if(up==2) {
+                        way=0;
+                    } else if(up==3) {
+                        way=-1;
+                    } else way=-1;
+                }
+                if(x==4) {
+                    if(up==1) {
+                        way=1;
+                    } else if(up==2) {
+                        way=1;
+                    } else if(up==3) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==5) {
+                    if(up<2) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==2) {
+                        way=1;
+                    } else if(up==3) {
+                        way=1;
+                    } else way=0;
+                }
+                if(x==6) {
+                    if(up<3) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==3) {
+                        way=1;
+                    } else way=1;
+                }
+                if(x==7) {
+                    if(up<4) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    }
+                    way=1;
+                }
+            } else {
+                if(x==0) {
+                    if(up>1) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    }
+                    way=-1;
+                }
+                if(x==1) {
+                    if(up>2) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==1) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==2) {
+                    if(up>3) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==1) {
+                        way=1;
+                    } else if(up==2) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==3) {
+                    if(up<2||up>4) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==2) {
+                        way=1;
+                    } else if(up==3) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==4) {
+                    if(up<3||up>5) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==3) {
+                        way=1;
+                    } else if(up==4) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==5) {
+                    if(up<4) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==4) {
+                        way=1;
+                    } else if(up==5) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==6) {
+                    if(up<5) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    } else if(up==5) {
+                        way=1;
+                    } else way=0;
+                }
+                if(x==7) {
+                    if(up<6) {
+                        lifeup=lifeup-1;
+                        uplose(x);
+                        break;
+                    }
+                    way=1;
+                }
+            }
+            citem++;
+            sstime++;
+            if(sstime==5) {
+                us=0;
+                ds=0;
+                chkss=0;
+                gitem=0;
+                citem=0;
+                ritem=ran.read()*1000;
+                ritem=(ritem%5)+1;
+                xrand=ranitem_x();
+                yrand=ranitem_y();
+            }
+
+
+            if(chk==1) {
+                for(y=5; y>0; y--) {
+
+                    if(x>6||x<1) {
+                        way=way*-1;
+                    }
+
+                    x=x+way;
+                    for(t=0; t<600; t++) {
+                        if(citem>ritem&&gitem!=1) {
+                            ranitem(xrand,yrand);
+                            chkss=1;
+                        }
 
                         Latch=0;
                         DataPack.write(Col[x]);
@@ -392,210 +717,461 @@
                         DataPack.write(Row[y]);
                         wait_us(1);
                         Latch=1;
-                    }
-                }
-                chk=1;
-            }
+
+                        if(x==xrand&&y==yrand&&chkss==1&&gitem!=1) {
+                            us=1;
+                            gitem=1;
+                            sstime=0;
+                        }
 
-            if(x==0) {
-                if(up>1) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                }
-                way=-1;
-            }
-            if(x==1) {
-                if(up>2) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                } else if(up==1) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==2) {
-                if(up>3) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                } else if(up==1) {
-                    way=1;
-                } else if(up==2) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==3) {
-                if(up<2||up>4) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                } else if(up==2) {
-                    way=1;
-                } else if(up==3) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==4) {
-                if(up<3||up>5) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                } else if(up==3) {
-                    way=1;
-                } else if(up==4) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==5) {
-                if(up<4) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                } else if(up==4) {
-                    way=1;
-                } else if(up==5) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==6) {
-                if(up<5) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                } else if(up==5) {
-                    way=1;
-                } else way=0;
-            }
-            if(x==7) {
-                if(up<6) {
-                    lifeup=lifeup-1;
-                    uplose(x);
-                    break;
-                }
-                way=1;
-            }
-
-            if(chk==1) {
-                for(y=5; y>0; y--) {
-
-                    if(x>6||x<1) {
-                        way=way*-1;
-                    }
-
-                    x=x+way;
-                    for(t=0; t<800; t++) {
-                        down=BaseUnder(lifeun);
-                        BaseUpper(lifeup);
-
-                        Latch=0;
-                        DataPack.write(Col[x]);
-                        wait_us(1);
-                        DataPack.write(0xFF);
-                        wait_us(1);
-                        DataPack.write(Col[x]);
-                        wait_us(1);
-                        DataPack.write(Row[y]);
-                        wait_us(1);
-                        Latch=1;
+                        if(ds==1) {
+                            down=BaseUnderSS(lifeun);
+                            BaseUpper(lifeup);
+                        } else if(us==1) {
+                            down=BaseUnder(lifeun);
+                            BaseUpperSS(lifeup);
+                        } else {
+                            down=BaseUnder(lifeun);
+                            BaseUpper(lifeup);
+                        }
                     }
                 }
                 chk=0;
             }
-
-            if(x==0) {
-                if(down>1) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
+            if(ds==1) {
+                if(x==0) {
+                    if(down>1) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    }
+                    way=-1;
+                }
+                if(x==1) {
+                    if(down>2) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==1) {
+                        way=-1;
+                    } else way=-1;
+                }
+                if(x==2) {
+                    if(down>3) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==1) {
+                        way=0;
+                    } else if(down==2) {
+                        way=-1;
+                    } else way=-1;
                 }
-                way=-1;
-            }
-            if(x==1) {
-                if(down>2) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
-                } else if(down==1) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==2) {
-                if(down>3) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
-                } else if(down==1) {
-                    way=1;
-                } else if(down==2) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==3) {
-                if(down<2||down>4) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
-                } else if(down==2) {
+                if(x==3) {
+                    if(down==1) {
+                        way=1;
+                    } else if(down==2) {
+                        way=0;
+                    } else if(down==3) {
+                        way=-1;
+                    } else way=-1;
+                }
+                if(x==4) {
+                    if(down==1) {
+                        way=1;
+                    } else if(down==2) {
+                        way=1;
+                    } else if(down==3) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==5) {
+                    if(down<2) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==2) {
+                        way=1;
+                    } else if(down==3) {
+                        way=1;
+                    } else way=0;
+                }
+                if(x==6) {
+                    if(down<3) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==3) {
+                        way=1;
+                    } else way=1;
+                }
+                if(x==7) {
+                    if(down<4) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    }
                     way=1;
-                } else if(down==3) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==4) {
-                if(down<3||down>5) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
-                } else if(down==3) {
+                }
+            } else {
+                if(x==0) {
+                    if(down>1) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    }
+                    way=-1;
+                }
+                if(x==1) {
+                    if(down>2) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==1) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==2) {
+                    if(down>3) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==1) {
+                        way=1;
+                    } else if(down==2) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==3) {
+                    if(down<2||down>4) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==2) {
+                        way=1;
+                    } else if(down==3) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==4) {
+                    if(down<3||down>5) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==3) {
+                        way=1;
+                    } else if(down==4) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==5) {
+                    if(down<4) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==4) {
+                        way=1;
+                    } else if(down==5) {
+                        way=0;
+                    } else way=-1;
+                }
+                if(x==6) {
+                    if(down<5) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    } else if(down==5) {
+                        way=1;
+                    } else way=0;
+                }
+                if(x==7) {
+                    if(down<6) {
+                        lifeun=lifeun-1;
+                        downlose(x);
+                        break;
+                    }
                     way=1;
-                } else if(down==4) {
-                    way=0;
-                } else way=-1;
+                }
             }
-            if(x==5) {
-                if(down<4) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
-                } else if(down==4) {
-                    way=1;
-                } else if(down==5) {
-                    way=0;
-                } else way=-1;
-            }
-            if(x==6) {
-                if(down<5) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
-                } else if(down==5) {
-                    way=1;
-                } else way=0;
-            }
-            if(x==7) {
-                if(down<6) {
-                    lifeun=lifeun-1;
-                    downlose(x);
-                    break;
-                }
-                way=1;
+
+            citem++;
+            sstime++;
+            if(sstime==5) {
+                us=0;
+                ds=0;
+                chkss=0;
+                gitem=0;
+                citem=0;
+                ritem=ran.read()*1000;
+                ritem=(ritem%5)+1;
+                xrand=ranitem_x();
+                yrand=ranitem_y();
             }
 
         }
         if(lifeup<0) {
             while(UnderButton==0&&UpperButton==0) {
+                Latch=0;
+                DataPack.write(0xE7);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0x18);
+                Latch=1;
+                wait_ms(100);
 
+                Latch=0;
+                DataPack.write(0xC3);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0x3C);
+                Latch=1;
+                wait_ms(100);
+
+                Latch=0;
+                DataPack.write(0x81);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0x7E);
+                Latch=1;
+                wait_ms(100);
+
+                Latch=0;
+                DataPack.write(0x00);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                Latch=1;
+                wait_ms(100);
+
+                for(i=0; i<500; i++) {
+                    Latch=0;
+                    DataPack.write(0x00);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xE7);
+                    wait_us(1);
+                    Latch=1;
+                    Latch=0;
+                    DataPack.write(0x18);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x18);
+                    wait_us(1);
+                    Latch=1;
+                }
+
+                for(m=0; m<500; m++) {
+                    Latch=0;
+                    DataPack.write(0x00);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xC3);
+                    wait_us(1);
+                    Latch=1;
+                    Latch=0;
+                    DataPack.write(0x3C);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x3C);
+                    wait_us(1);
+                    Latch=1;
+                }
+
+                for(n=0; n<500; n++) {
+                    Latch=0;
+                    DataPack.write(0x00);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x81);
+                    wait_us(1);
+                    Latch=1;
+                    Latch=0;
+                    DataPack.write(0x7E);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x7E);
+                    wait_us(1);
+                    Latch=1;
+                }
+
+                Latch=0;
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0x00);
+                wait_us(1);
+                Latch=1;
+                wait_ms(100);
             }
             lifeup=2;
             lifeun=2;
+            wait_ms(500);
+            Count();
         }
         if(lifeun<0) {
             while(UnderButton==0&&UpperButton==0) {
+                Latch=0;
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xE7);
+                wait_us(1);
+                DataPack.write(0x18);
+                Latch=1;
+                wait_ms(100);
 
+                Latch=0;
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xC3);
+                wait_us(1);
+                DataPack.write(0x3C);
+                Latch=1;
+                wait_ms(100);
+
+                Latch=0;
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0x81);
+                wait_us(1);
+                DataPack.write(0x7E);
+                Latch=1;
+                wait_ms(100);
+
+                Latch=0;
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0x00);
+                wait_us(1);
+                DataPack.write(0xFF);
+                Latch=1;
+                wait_ms(100);
+
+                for(i=0; i<500; i++) {
+                    Latch=0;
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x00);
+                    wait_us(1);
+                    DataPack.write(0xE7);
+                    wait_us(1);
+                    Latch=1;
+                    Latch=0;
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x18);
+                    wait_us(1);
+                    DataPack.write(0x18);
+                    wait_us(1);
+                    Latch=1;
+                }
+
+                for(m=0; m<500; m++) {
+                    Latch=0;
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x00);
+                    wait_us(1);
+                    DataPack.write(0xC3);
+                    wait_us(1);
+                    Latch=1;
+                    Latch=0;
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x3C);
+                    wait_us(1);
+                    DataPack.write(0x3C);
+                    wait_us(1);
+                    Latch=1;
+                }
+
+                for(n=0; n<500; n++) {
+                    Latch=0;
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x00);
+                    wait_us(1);
+                    DataPack.write(0x81);
+                    wait_us(1);
+                    Latch=1;
+                    Latch=0;
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0xFF);
+                    wait_us(1);
+                    DataPack.write(0x7E);
+                    wait_us(1);
+                    DataPack.write(0x7E);
+                    wait_us(1);
+                    Latch=1;
+                }
+
+                Latch=0;
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0xFF);
+                wait_us(1);
+                DataPack.write(0x00);
+                wait_us(1);
+                Latch=1;
+                wait_ms(100);
             }
             lifeup=2;
             lifeun=2;
+            wait_ms(500);
+            Count();
         }
     }
-}
+}
\ No newline at end of file