FRA221_2015 / Mbed 2 deprecated Project_PokPakGame

Dependencies:   mbed

Fork of Project_PokPakGame by FRA221_7B

main.cpp

Committer:
lolopo008
Date:
2015-12-05
Revision:
1:374cc7a8fcf0
Parent:
0:e282add6146d

File content as of revision 1:374cc7a8fcf0:

#include "mbed.h"

SPI DataPack(SPI_MOSI, SPI_MISO, SPI_SCK);
DigitalOut Latch(D10);
AnalogIn VR0(A0);
AnalogIn VR1(A1);
Serial pc(USBTX, USBRX);

float VR_value0,VR_value1;
int Row[8]= {1,2,4,8,16,32,64,128};
int Col[8]= {254,253,251,247,239,223,191,127};
int x;

void Player1()
{
    VR_value0 = VR0.read();
    VR_value0 = VR_value0*6;

    Latch=0;
    if(VR_value0<=1) {
        //D1
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x1F);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x01);
        wait_us(1);
    } else if(VR_value0>1&&VR_value0<=2) {
        //D2
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x8F);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x01);
        wait_us(1);
    } else if(VR_value0>2&&VR_value0<=3) {
        //D3
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xC7);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x01);
        wait_us(1);
    } else if(VR_value0>3&&VR_value0<=4) {
        //D4
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xE3);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x01);
        wait_us(1);
    } else if(VR_value0>4&&VR_value0<=5) {
        //D5
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xF1);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x01);
        wait_us(1);
    } else if(VR_value0>5&&VR_value0<=6) {
        //D6
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xF8);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x01);
        wait_us(1);
    }
    Latch=1;
}

void Player2()
{
    VR_value1 = VR1.read();
    VR_value1 = VR_value1*6;

    Latch=0;
    if(VR_value1<=1) {
        //U1
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x1F);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x80);
        wait_us(1);
    } else if(VR_value1>1&&VR_value1<=2) {
        //U2
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x8F);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x80);
        wait_us(1);
    } else if(VR_value0>2&&VR_value0<=3) {
        //U3
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xC7);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x80);
        wait_us(1);
    } else if(VR_value1>3&&VR_value1<=4) {
        //U4
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xE3);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x80);
        wait_us(1);
    } else if(VR_value1>4&&VR_value1<=5) {
        //U5
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xF1);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x80);
        wait_us(1);
    } else if(VR_value1>5&&VR_value1<=6) {
        //U6
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xF8);
        wait_us(1);
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x80);
        wait_us(1);
    }
    Latch=1;
}

void Count()
{
    //3
    for(x=0; x<3000; x++) {
        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x1F);
        wait_us(1);
        DataPack.write(0x1F);
        wait_us(1);
        DataPack.write(0x40);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x78);
        wait_us(1);
        DataPack.write(0x78);
        wait_us(1);
        DataPack.write(0x28);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x1E);
        wait_us(1);
        DataPack.write(0x1E);
        wait_us(1);
        DataPack.write(0x14);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xF8);
        wait_us(1);
        DataPack.write(0xF8);
        wait_us(1);
        DataPack.write(0x02);
        wait_us(1);
        Latch=1;
    }

    //2
    for(x=0; x<2200; x++) {
        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x1F);
        wait_us(1);
        DataPack.write(0x1F);
        wait_us(1);
        DataPack.write(0x40);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xD8);
        wait_us(1);
        DataPack.write(0xD8);
        wait_us(1);
        DataPack.write(0x20);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x1E);
        wait_us(1);
        DataPack.write(0x1E);
        wait_us(1);
        DataPack.write(0x10);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x78);
        wait_us(1);
        DataPack.write(0x78);
        wait_us(1);
        DataPack.write(0x08);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0x1B);
        wait_us(1);
        DataPack.write(0x1B);
        wait_us(1);
        DataPack.write(0x04);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xF8);
        wait_us(1);
        DataPack.write(0xF8);
        wait_us(1);
        DataPack.write(0x02);
        wait_us(1);
        Latch=1;
    }

    //1
    for(x=0; x<4000; x++) {
        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xBF);
        wait_us(1);
        DataPack.write(0xBF);
        wait_us(1);
        DataPack.write(0x40);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xBD);
        wait_us(1);
        DataPack.write(0xBD);
        wait_us(1);
        DataPack.write(0x3C);
        wait_us(1);
        Latch=1;

        Latch=0;
        DataPack.write(0xFF);
        wait_us(1);
        DataPack.write(0xFD);
        wait_us(1);
        DataPack.write(0xFD);
        wait_us(1);
        DataPack.write(0x02);
        wait_us(1);
        Latch=1;
    }
}

int main()
{
    DataPack.frequency(100000);
    DataPack.format(8,0);

    Count();
    
    while(1) {
        Player1();
        Player2();
    }
}