step1
Dependencies: mbed ADT7410 FlashAir_iSDIO SDFileSystem USBDevice
Revision 3:e36e31ebb464, committed 2019-01-11
- Comitter:
- yone2
- Date:
- Fri Jan 11 07:51:34 2019 +0000
- Parent:
- 2:b961b87d7040
- Child:
- 4:6f2cf32b8da9
- Commit message:
- for FlashAir summit osaka 2018
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Sep 20 01:18:55 2018 +0000 +++ b/main.cpp Fri Jan 11 07:51:34 2019 +0000 @@ -1,110 +1,127 @@ -/* FlashAir iSDIO sample - * Copyright (C) 2018 by Junichi SHIBA, PIAX Inc. - * - * This file is a FlashAir iSDIO sample program code - * Released under the BSD 2-Clause license. - * http://flashair-developers.com/documents/license.html - */ #include "mbed.h" #include "FlashAir_iSDIO.h" +//------------------------------------------------------------------------------- +//Port Settings +DigitalOut led1(LED1); +//DigitalOut led2(P1_13,0); -//#define USE_CONSOLE +InterruptIn sw(P1_20); +InterruptIn isp(P0_1); -#if defined(TARGET_LPC11U24) -FlashAir_iSDIO sd(p11, p12, p13, p14, "sd"); // MOSI, MISO, SCLK, SSEL -#elif defined(TARGET_LPC1114) -FlashAir_iSDIO sd(p11, p12, p13, p14, "sd"); // MOSI, MISO, SCLK, SSEL -#elif defined(TARGET_LPC1549) -FlashAir_iSDIO sd(D11, D12, D13, D10, "sd"); // MOSI, MISO, SCLK, SSEL -#elif defined(TARGET_NUCLEO_L073RZ) // TOYBOARD -Serial console(PA_9, PA_10); // TX, RX -FlashAir_iSDIO sd(PB_15, PB_14, PB_13, PB_12, "sd", &console); // mosi(CMD), miso(DAT0), sclk(CLK), cs(DAT3) -DigitalOut ledB(PB_11, 1); // B -DigitalOut ledG(PB_10, 1); // G -DigitalOut ledR(PA_15, 1); // R -DigitalOut SD_VEN(PC_4, 0); // SD initialy off -DigitalIn SD_CD(PC_1); // SD_CD -#elif defined(TARGET_LPC11U35_401) // Airio-Base -//#elif defined(TARGET_MCU_LPC11U35_501) +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 -//Serial pc(USBTX, USBRX); FlashAir_iSDIO sd(P0_21, P0_22, P1_15, P0_17, "sd", &console); // mosi(CMD), miso(DAT0), sclk(CLK), cs(DAT3) -DigitalOut ledB(P0_7, 1); -DigitalOut ledG(P0_7, 1); -DigitalOut ledR(P0_7, 1); -DigitalOut SD_VEN(P1_16); -DigitalIn SD_CD(P1_19); -#else -#error -#endif + +//------------------------------------------------------------------------------- +//Program + +int wlan_stat = 0; +uint32_t sequenceId ; - -//************************************************** - -int main() -{ - uint32_t sequenceId ; - ledG=0; ledB=0; - -#ifdef USE_CONSOLE - console.printf("start FlashAir iSDIO sample\n"); -#endif +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); - // supply power to SD card - SD_VEN = 1; - wait(5.0); - - if (SD_CD) { -#ifdef USE_CONSOLE - console.printf("SD: Not dected\n"); -#endif - } else { -#ifdef USE_CONSOLE - console.printf("SD: Detected\n"); -#endif } - - // Initialize card - FILE *fp = fopen("/sd/isdio.txt", "w"); - fclose(fp); +} - wait(15.0); - ledG=1; ledB=1; ledR=0; - - // disconnect - // 1. get sequenceID - // 2. issue disconnect command - // 3. wait response - sequenceId = sd.getNextSequenceId(); - sd.wlan_disconnect(sequenceId); - sd.waitResponse(sequenceId); - wait(5.0); - - ledB = 0; - - // 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); - wait(5.0); - ledG = 0; - - // shared mem - // 1. prepare test data - // 2. write data to shared mem area - // 3. read back and check +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)); - memset(data, 0x0, sizeof(data)); - sd.read_shared_mem(0x0, data, sizeof(data)); + wait(3.0); +} - ledG=1; ledB=1; ledR=1; +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; + } +} - for(;;); +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); + + + + + } }