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 
00003 #if !DEVICE_SPISLAVE
00004   #error [NOT_SUPPORTED] SPI Slave not supported
00005 #endif
00006 
00007 #if defined(TARGET_KL25Z)
00008 SPISlave device(PTD2, PTD3, PTD1, PTD0);    // mosi, miso, sclk, ssel
00009 #elif defined(TARGET_nRF51822)
00010 SPISlave device(p12, p13, p15, p14);  // mosi, miso, sclk, ssel
00011 #elif defined(TARGET_LPC812)
00012 SPISlave device(P0_14, P0_15, P0_12, P0_13);    // mosi, miso, sclk, ssel
00013 #elif defined(TARGET_FF_ARDUINO)
00014 SPISlave device(D11, D12, D13, D10);       // mosi, miso, sclk, ssel
00015 #elif defined(TARGET_LPC1114)
00016 SPISlave device(dp2, dp1, dp6, dp25);            // mosi, miso, sclk, ssel
00017 #elif defined(TARGET_SAMR21G18A)
00018 SPISlave device(PB22, PB02, PB23, PB03);        // mosi, miso, sclk, ssel
00019 #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
00020 SPISlave device(PA18, PA16, PA19, PA17);        // mosi, miso, sclk, ssel
00021 #elif defined(TARGET_SAMG55J19)
00022 SPISlave device(PA10, PA09, PB00, PA25);   // mosi, miso, sclk  cs
00023 #else
00024 SPISlave device(p5, p6, p7, p8);            // mosi, miso, sclk, ssel
00025 #endif
00026 
00027 
00028 int main() {
00029     uint8_t resp = 0;
00030 
00031     device.reply(resp);                    // Prime SPI with first reply
00032 
00033     while(1) {
00034         if(device.receive()) {
00035             resp = device.read();           // Read byte from master and add 1
00036             device.reply(resp);             // Make this the next reply
00037         }
00038     }
00039 }