Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "test_env.h"
00003 
00004 #if !DEVICE_SPI
00005   #error [NOT_SUPPORTED] SPI not supported
00006 #endif
00007 
00008 #if defined(TARGET_KL25Z)
00009 SPI spi(PTD2, PTD3, PTD1);   // mosi, miso, sclk
00010 DigitalOut cs(PTA13);
00011 #elif defined(TARGET_KL05Z)
00012 SPI spi(PTA7, PTA6, PTB0);   // mosi, miso, sclk
00013 DigitalOut cs(PTB1);
00014 #elif defined(TARGET_KL46Z)
00015 SPI spi(PTD2, PTD3, PTD1);   // mosi, miso, sclk
00016 DigitalOut cs(PTA13);
00017 #elif defined(TARGET_ELMO_F411RE)
00018 SPI spi(PB_15, PB_14, PB_13);   // mosi, miso, sclk
00019 DigitalOut cs(PB_12);
00020 #elif defined(TARGET_FF_ARDUINO)
00021 SPI spi(D11, D12, D13);   // mosi, miso, sclk
00022 DigitalOut cs(D10);
00023 #elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
00024 SPI spi(PD0, PD1, PD2);   // mosi, miso, sclk
00025 DigitalOut cs(PD3);
00026 #elif defined(TARGET_EFM32ZG_STK3200)
00027 SPI spi(PD7, PD6, PC15);   // mosi, miso, sclk
00028 DigitalOut cs(PC14);
00029 #elif defined(TARGET_EFM32HG_STK3400)
00030 SPI spi(PE10, PE11, PE12);   // mosi, miso, sclk
00031 DigitalOut cs(PE13);
00032 #elif defined(TARGET_EFM32PG_STK3401)
00033 SPI spi(PC6, PC7, PC8);   // mosi, miso, sclk
00034 DigitalOut cs(PC9);
00035 #elif defined(TARGET_SAMR21G18A)
00036 SPI spi(PB22, PB02, PB23);   // mosi, miso, sclk
00037 DigitalOut cs(PB03);
00038 #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
00039 SPI spi(PA18, PA16, PA19);   // mosi, miso, sclk
00040 DigitalOut cs(PA17);
00041 #elif defined(TARGET_SAMG55J19)
00042 SPI spi(PA10, PA09, PB00, PA25);   // mosi, miso, sclk  cs
00043 DigitalOut cs(PA25);
00044 #else
00045 SPI spi(p5, p6, p7); // mosi, miso, sclk
00046 DigitalOut cs(p8);
00047 #endif
00048 
00049 int main() {
00050     int data = 0;
00051     int res = 0;
00052 
00053     for(int i = 0; i < 30; i++) {
00054 
00055         cs = 0;
00056         res = spi.write(data++);
00057         cs = 1;
00058 
00059         wait_ms(0.001);
00060 
00061         if ((i > 1) && ((res + 2) != data))
00062             notify_completion(false);
00063     }
00064 
00065     notify_completion(true);
00066 }