step1

Dependencies:   mbed ADT7410 FlashAir_iSDIO SDFileSystem USBDevice

main.cpp

Committer:
yone2
Date:
2019-01-11
Revision:
3:e36e31ebb464
Parent:
2:b961b87d7040
Child:
4:6f2cf32b8da9

File content as of revision 3:e36e31ebb464:

#include "mbed.h"
#include "FlashAir_iSDIO.h"
//-------------------------------------------------------------------------------
//Port Settings
DigitalOut led1(LED1);
//DigitalOut led2(P1_13,0);

InterruptIn sw(P1_20);
InterruptIn isp(P0_1);

DigitalOut sA1(P0_13,0);
DigitalOut sA2(P1_21,0); 
DigitalOut sB(P0_9,0);
DigitalOut sC(P0_20,0);
DigitalOut sD1(P0_14,0);
DigitalOut sD2(P1_26,0);
DigitalOut sE(P0_16,0);
DigitalOut sF(P0_11,0);
DigitalOut sG1(P0_23,0);
DigitalOut sG2(P0_8,0);
DigitalOut sJ(P0_12,0);
DigitalOut sK(P1_28,0);
DigitalOut sL(P1_31,0);
DigitalOut sP(P1_23,0);
DigitalOut sN(P1_27,0);
DigitalOut sM(P0_2,0);
DigitalOut sDP(P1_25,0);
DigitalOut SD_VEN(P1_16);
Serial console(P0_19, P0_18); // TX, RX
FlashAir_iSDIO sd(P0_21, P0_22, P1_15, P0_17, "sd", &console); // mosi(CMD), miso(DAT0), sclk(CLK), cs(DAT3)

//-------------------------------------------------------------------------------
//Program

int wlan_stat = 0;
uint32_t sequenceId ;

void sw_int(){
    if(wlan_stat==1){
        // disconnect 
        // 1. get sequenceID
        // 2. issue disconnect command
        // 3. wait response 
        sequenceId = sd.getNextSequenceId();
        sd.wlan_disconnect(sequenceId);
        sd.waitResponse(sequenceId);
        wlan_stat =0;
        led1 = 0;
        wait(5.0);
    }else{
        // establish
        // 1. get sequenceID
        // 2. issue establish command
        // 3. wait resoonse        
        sequenceId = sd.getNextSequenceId();
        sd.wlan_establish(sequenceId, "isdiotest", "12345678", FlashAir_iSDIO::ENCMODE_WPA2PSK_AES);
        led1 = 1;
        wlan_stat =1;
        wait(5.0);
    
    }
}

void isp_int(){
    #define TESTDATA 0xdeadbeaf
    uint32_t testdata = TESTDATA;
    uint8_t data[sizeof(testdata)];
    memcpy(data, &testdata, sizeof(data));
    sd.write_shared_mem(0x0, data, sizeof(data));
    wait(3.0);
}

void seg_disp(int val){
    switch((val/10)%10){
        case 0:sA1=1;sA2=1;sB=0;sF=0;sJ=1;sK=0;sL=1;break;
        case 1:sA1=1;sA2=1;sB=0;sF=0;sJ=0;sK=0;sL=0;break;
        case 2:sA1=0;sA2=0;sB=0;sF=1;sJ=1;sK=0;sL=1;break;
        case 3:sA1=0;sA2=0;sB=0;sF=0;sJ=1;sK=1;sL=1;break;
        case 4:sA1=1;sA2=1;sB=1;sF=0;sJ=0;sK=1;sL=0;break;
        case 5:sA1=0;sA2=1;sB=1;sF=0;sJ=1;sK=1;sL=0;break;
        case 6:sA1=1;sA2=1;sB=0;sF=0;sJ=1;sK=1;sL=0;break;
        case 7:sA1=0;sA2=0;sB=0;sF=0;sJ=1;sK=0;sL=1;break;
        case 8:sA1=1;sA2=1;sB=0;sF=0;sJ=1;sK=1;sL=1;break;
        case 9:sA1=0;sA2=1;sB=0;sF=0;sJ=1;sK=1;sL=1;break;
        default:sA1=0;sA2=0;sB=0;sF=0;sJ=0;sK=0;sL=0;break;
    }
    switch(val%10){
        case 0:sC=1;sD1=1;sD2=1;sE=1;sG1=1;sG2=1;sN=0;break;
        case 1:sC=0;sD1=1;sD2=1;sE=0;sG1=0;sG2=0;sN=0;break;
        case 2:sC=1;sD1=0;sD2=1;sE=1;sG1=1;sG2=0;sN=1;break;
        case 3:sC=1;sD1=1;sD2=1;sE=1;sG1=0;sG2=0;sN=1;break;
        case 4:sC=0;sD1=1;sD2=1;sE=0;sG1=0;sG2=1;sN=1;break;
        case 5:sC=1;sD1=1;sD2=0;sE=1;sG1=0;sG2=1;sN=1;break;
        case 6:sC=1;sD1=1;sD2=0;sE=1;sG1=1;sG2=1;sN=1;break;
        case 7:sC=1;sD1=1;sD2=1;sE=0;sG1=0;sG2=0;sN=0;break;
        case 8:sC=1;sD1=1;sD2=1;sE=1;sG1=1;sG2=1;sN=1;break;
        case 9:sC=1;sD1=1;sD2=1;sE=1;sG1=0;sG2=1;sN=1;break;
        default:sC=0;sD1=0;sD2=0;sE=0;sG1=0;sG2=0;sN=0;break;
    }
}

int main()
{
     SD_VEN = 1;
    // Initialize card
    FILE *fp = fopen("/sd/isdio.txt", "w");
    fclose(fp);
    
    sequenceId = sd.getNextSequenceId();
    sd.wlan_disconnect(sequenceId);
    sd.waitResponse(sequenceId);
    
    sw.rise(&sw_int);
    isp.rise(&isp_int);
    
    int i=0;
    while(1)
    {
        seg_disp(i);
        i++;
        wait(0.3);
    
        

        
    }
}