step1
Dependencies: mbed ADT7410 FlashAir_iSDIO SDFileSystem USBDevice
main.cpp@3:e36e31ebb464, 2019-01-11 (annotated)
- Committer:
- yone2
- Date:
- Fri Jan 11 07:51:34 2019 +0000
- Revision:
- 3:e36e31ebb464
- Parent:
- 2:b961b87d7040
- Child:
- 4:6f2cf32b8da9
for FlashAir summit osaka 2018
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
faadmin | 0:35b67da566e1 | 1 | #include "mbed.h" |
faadmin | 0:35b67da566e1 | 2 | #include "FlashAir_iSDIO.h" |
yone2 | 3:e36e31ebb464 | 3 | //------------------------------------------------------------------------------- |
yone2 | 3:e36e31ebb464 | 4 | //Port Settings |
yone2 | 3:e36e31ebb464 | 5 | DigitalOut led1(LED1); |
yone2 | 3:e36e31ebb464 | 6 | //DigitalOut led2(P1_13,0); |
faadmin | 0:35b67da566e1 | 7 | |
yone2 | 3:e36e31ebb464 | 8 | InterruptIn sw(P1_20); |
yone2 | 3:e36e31ebb464 | 9 | InterruptIn isp(P0_1); |
faadmin | 0:35b67da566e1 | 10 | |
yone2 | 3:e36e31ebb464 | 11 | DigitalOut sA1(P0_13,0); |
yone2 | 3:e36e31ebb464 | 12 | DigitalOut sA2(P1_21,0); |
yone2 | 3:e36e31ebb464 | 13 | DigitalOut sB(P0_9,0); |
yone2 | 3:e36e31ebb464 | 14 | DigitalOut sC(P0_20,0); |
yone2 | 3:e36e31ebb464 | 15 | DigitalOut sD1(P0_14,0); |
yone2 | 3:e36e31ebb464 | 16 | DigitalOut sD2(P1_26,0); |
yone2 | 3:e36e31ebb464 | 17 | DigitalOut sE(P0_16,0); |
yone2 | 3:e36e31ebb464 | 18 | DigitalOut sF(P0_11,0); |
yone2 | 3:e36e31ebb464 | 19 | DigitalOut sG1(P0_23,0); |
yone2 | 3:e36e31ebb464 | 20 | DigitalOut sG2(P0_8,0); |
yone2 | 3:e36e31ebb464 | 21 | DigitalOut sJ(P0_12,0); |
yone2 | 3:e36e31ebb464 | 22 | DigitalOut sK(P1_28,0); |
yone2 | 3:e36e31ebb464 | 23 | DigitalOut sL(P1_31,0); |
yone2 | 3:e36e31ebb464 | 24 | DigitalOut sP(P1_23,0); |
yone2 | 3:e36e31ebb464 | 25 | DigitalOut sN(P1_27,0); |
yone2 | 3:e36e31ebb464 | 26 | DigitalOut sM(P0_2,0); |
yone2 | 3:e36e31ebb464 | 27 | DigitalOut sDP(P1_25,0); |
yone2 | 3:e36e31ebb464 | 28 | DigitalOut SD_VEN(P1_16); |
faadmin | 0:35b67da566e1 | 29 | Serial console(P0_19, P0_18); // TX, RX |
faadmin | 0:35b67da566e1 | 30 | FlashAir_iSDIO sd(P0_21, P0_22, P1_15, P0_17, "sd", &console); // mosi(CMD), miso(DAT0), sclk(CLK), cs(DAT3) |
yone2 | 3:e36e31ebb464 | 31 | |
yone2 | 3:e36e31ebb464 | 32 | //------------------------------------------------------------------------------- |
yone2 | 3:e36e31ebb464 | 33 | //Program |
yone2 | 3:e36e31ebb464 | 34 | |
yone2 | 3:e36e31ebb464 | 35 | int wlan_stat = 0; |
yone2 | 3:e36e31ebb464 | 36 | uint32_t sequenceId ; |
faadmin | 0:35b67da566e1 | 37 | |
yone2 | 3:e36e31ebb464 | 38 | void sw_int(){ |
yone2 | 3:e36e31ebb464 | 39 | if(wlan_stat==1){ |
yone2 | 3:e36e31ebb464 | 40 | // disconnect |
yone2 | 3:e36e31ebb464 | 41 | // 1. get sequenceID |
yone2 | 3:e36e31ebb464 | 42 | // 2. issue disconnect command |
yone2 | 3:e36e31ebb464 | 43 | // 3. wait response |
yone2 | 3:e36e31ebb464 | 44 | sequenceId = sd.getNextSequenceId(); |
yone2 | 3:e36e31ebb464 | 45 | sd.wlan_disconnect(sequenceId); |
yone2 | 3:e36e31ebb464 | 46 | sd.waitResponse(sequenceId); |
yone2 | 3:e36e31ebb464 | 47 | wlan_stat =0; |
yone2 | 3:e36e31ebb464 | 48 | led1 = 0; |
yone2 | 3:e36e31ebb464 | 49 | wait(5.0); |
yone2 | 3:e36e31ebb464 | 50 | }else{ |
yone2 | 3:e36e31ebb464 | 51 | // establish |
yone2 | 3:e36e31ebb464 | 52 | // 1. get sequenceID |
yone2 | 3:e36e31ebb464 | 53 | // 2. issue establish command |
yone2 | 3:e36e31ebb464 | 54 | // 3. wait resoonse |
yone2 | 3:e36e31ebb464 | 55 | sequenceId = sd.getNextSequenceId(); |
yone2 | 3:e36e31ebb464 | 56 | sd.wlan_establish(sequenceId, "isdiotest", "12345678", FlashAir_iSDIO::ENCMODE_WPA2PSK_AES); |
yone2 | 3:e36e31ebb464 | 57 | led1 = 1; |
yone2 | 3:e36e31ebb464 | 58 | wlan_stat =1; |
yone2 | 3:e36e31ebb464 | 59 | wait(5.0); |
faadmin | 0:35b67da566e1 | 60 | |
faadmin | 0:35b67da566e1 | 61 | } |
yone2 | 3:e36e31ebb464 | 62 | } |
faadmin | 0:35b67da566e1 | 63 | |
yone2 | 3:e36e31ebb464 | 64 | void isp_int(){ |
hogejun | 1:8aaee4f08dbc | 65 | #define TESTDATA 0xdeadbeaf |
faadmin | 0:35b67da566e1 | 66 | uint32_t testdata = TESTDATA; |
faadmin | 0:35b67da566e1 | 67 | uint8_t data[sizeof(testdata)]; |
faadmin | 0:35b67da566e1 | 68 | memcpy(data, &testdata, sizeof(data)); |
faadmin | 0:35b67da566e1 | 69 | sd.write_shared_mem(0x0, data, sizeof(data)); |
yone2 | 3:e36e31ebb464 | 70 | wait(3.0); |
yone2 | 3:e36e31ebb464 | 71 | } |
hogejun | 1:8aaee4f08dbc | 72 | |
yone2 | 3:e36e31ebb464 | 73 | void seg_disp(int val){ |
yone2 | 3:e36e31ebb464 | 74 | switch((val/10)%10){ |
yone2 | 3:e36e31ebb464 | 75 | case 0:sA1=1;sA2=1;sB=0;sF=0;sJ=1;sK=0;sL=1;break; |
yone2 | 3:e36e31ebb464 | 76 | case 1:sA1=1;sA2=1;sB=0;sF=0;sJ=0;sK=0;sL=0;break; |
yone2 | 3:e36e31ebb464 | 77 | case 2:sA1=0;sA2=0;sB=0;sF=1;sJ=1;sK=0;sL=1;break; |
yone2 | 3:e36e31ebb464 | 78 | case 3:sA1=0;sA2=0;sB=0;sF=0;sJ=1;sK=1;sL=1;break; |
yone2 | 3:e36e31ebb464 | 79 | case 4:sA1=1;sA2=1;sB=1;sF=0;sJ=0;sK=1;sL=0;break; |
yone2 | 3:e36e31ebb464 | 80 | case 5:sA1=0;sA2=1;sB=1;sF=0;sJ=1;sK=1;sL=0;break; |
yone2 | 3:e36e31ebb464 | 81 | case 6:sA1=1;sA2=1;sB=0;sF=0;sJ=1;sK=1;sL=0;break; |
yone2 | 3:e36e31ebb464 | 82 | case 7:sA1=0;sA2=0;sB=0;sF=0;sJ=1;sK=0;sL=1;break; |
yone2 | 3:e36e31ebb464 | 83 | case 8:sA1=1;sA2=1;sB=0;sF=0;sJ=1;sK=1;sL=1;break; |
yone2 | 3:e36e31ebb464 | 84 | case 9:sA1=0;sA2=1;sB=0;sF=0;sJ=1;sK=1;sL=1;break; |
yone2 | 3:e36e31ebb464 | 85 | default:sA1=0;sA2=0;sB=0;sF=0;sJ=0;sK=0;sL=0;break; |
yone2 | 3:e36e31ebb464 | 86 | } |
yone2 | 3:e36e31ebb464 | 87 | switch(val%10){ |
yone2 | 3:e36e31ebb464 | 88 | case 0:sC=1;sD1=1;sD2=1;sE=1;sG1=1;sG2=1;sN=0;break; |
yone2 | 3:e36e31ebb464 | 89 | case 1:sC=0;sD1=1;sD2=1;sE=0;sG1=0;sG2=0;sN=0;break; |
yone2 | 3:e36e31ebb464 | 90 | case 2:sC=1;sD1=0;sD2=1;sE=1;sG1=1;sG2=0;sN=1;break; |
yone2 | 3:e36e31ebb464 | 91 | case 3:sC=1;sD1=1;sD2=1;sE=1;sG1=0;sG2=0;sN=1;break; |
yone2 | 3:e36e31ebb464 | 92 | case 4:sC=0;sD1=1;sD2=1;sE=0;sG1=0;sG2=1;sN=1;break; |
yone2 | 3:e36e31ebb464 | 93 | case 5:sC=1;sD1=1;sD2=0;sE=1;sG1=0;sG2=1;sN=1;break; |
yone2 | 3:e36e31ebb464 | 94 | case 6:sC=1;sD1=1;sD2=0;sE=1;sG1=1;sG2=1;sN=1;break; |
yone2 | 3:e36e31ebb464 | 95 | case 7:sC=1;sD1=1;sD2=1;sE=0;sG1=0;sG2=0;sN=0;break; |
yone2 | 3:e36e31ebb464 | 96 | case 8:sC=1;sD1=1;sD2=1;sE=1;sG1=1;sG2=1;sN=1;break; |
yone2 | 3:e36e31ebb464 | 97 | case 9:sC=1;sD1=1;sD2=1;sE=1;sG1=0;sG2=1;sN=1;break; |
yone2 | 3:e36e31ebb464 | 98 | default:sC=0;sD1=0;sD2=0;sE=0;sG1=0;sG2=0;sN=0;break; |
yone2 | 3:e36e31ebb464 | 99 | } |
yone2 | 3:e36e31ebb464 | 100 | } |
hogejun | 1:8aaee4f08dbc | 101 | |
yone2 | 3:e36e31ebb464 | 102 | int main() |
yone2 | 3:e36e31ebb464 | 103 | { |
yone2 | 3:e36e31ebb464 | 104 | SD_VEN = 1; |
yone2 | 3:e36e31ebb464 | 105 | // Initialize card |
yone2 | 3:e36e31ebb464 | 106 | FILE *fp = fopen("/sd/isdio.txt", "w"); |
yone2 | 3:e36e31ebb464 | 107 | fclose(fp); |
yone2 | 3:e36e31ebb464 | 108 | |
yone2 | 3:e36e31ebb464 | 109 | sequenceId = sd.getNextSequenceId(); |
yone2 | 3:e36e31ebb464 | 110 | sd.wlan_disconnect(sequenceId); |
yone2 | 3:e36e31ebb464 | 111 | sd.waitResponse(sequenceId); |
faadmin | 0:35b67da566e1 | 112 | |
yone2 | 3:e36e31ebb464 | 113 | sw.rise(&sw_int); |
yone2 | 3:e36e31ebb464 | 114 | isp.rise(&isp_int); |
yone2 | 3:e36e31ebb464 | 115 | |
yone2 | 3:e36e31ebb464 | 116 | int i=0; |
yone2 | 3:e36e31ebb464 | 117 | while(1) |
yone2 | 3:e36e31ebb464 | 118 | { |
yone2 | 3:e36e31ebb464 | 119 | seg_disp(i); |
yone2 | 3:e36e31ebb464 | 120 | i++; |
yone2 | 3:e36e31ebb464 | 121 | wait(0.3); |
yone2 | 3:e36e31ebb464 | 122 | |
yone2 | 3:e36e31ebb464 | 123 | |
yone2 | 3:e36e31ebb464 | 124 | |
yone2 | 3:e36e31ebb464 | 125 | |
yone2 | 3:e36e31ebb464 | 126 | } |
faadmin | 0:35b67da566e1 | 127 | } |