TEAMUSB / SPI_slave_frdm

Dependencies:   mbed-src

Fork of SPI_slave_lpc1114fn28 by TEAMUSB

Committer:
armdran
Date:
Wed Apr 01 09:08:37 2015 +0000
Revision:
1:f0831940e436
Parent:
0:84a7343cd5c1
Child:
3:e75751703666
spi slave on frdm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
armdran 0:84a7343cd5c1 1 #include "mbed.h"
armdran 0:84a7343cd5c1 2
armdran 0:84a7343cd5c1 3 //SPI Slave
armdran 1:f0831940e436 4 SPISlave device(D11, D12, D13, D10); // mosi, miso, sclk, ssel
armdran 1:f0831940e436 5 //SPISlave device(PTA16, PTA17, PTA15, PTB9); // mosi, miso, sclk, ssel
armdran 1:f0831940e436 6 //SPISlave device(PTD6, PTD7, PTD5, PTD4); // mosi, miso, sclk, ssel
armdran 1:f0831940e436 7 //SPISlave device(PTA16, PTA17, PTA15, D10);
armdran 0:84a7343cd5c1 8 Serial pc(USBTX, USBRX);
armdran 0:84a7343cd5c1 9
armdran 0:84a7343cd5c1 10 int main() {
armdran 1:f0831940e436 11 //pc.baud(9600);
armdran 0:84a7343cd5c1 12 //pc.format(8, SerialBase::None, 1);
armdran 1:f0831940e436 13 device.frequency(100000);
armdran 0:84a7343cd5c1 14 device.format(8, 0);
armdran 0:84a7343cd5c1 15
armdran 0:84a7343cd5c1 16 int i = 0;
armdran 0:84a7343cd5c1 17
armdran 0:84a7343cd5c1 18 while(1) {
armdran 0:84a7343cd5c1 19
armdran 0:84a7343cd5c1 20 uint8_t instruction = 0xAB;
armdran 0:84a7343cd5c1 21
armdran 0:84a7343cd5c1 22 pc.printf("waiting for instruction");
armdran 0:84a7343cd5c1 23 device.reply(0xFF);
armdran 1:f0831940e436 24
armdran 0:84a7343cd5c1 25 while(!device.receive()) {
armdran 0:84a7343cd5c1 26 if(i++ % 10000 == 0) {
armdran 0:84a7343cd5c1 27 printf(".");
armdran 0:84a7343cd5c1 28 }
armdran 0:84a7343cd5c1 29 }
armdran 0:84a7343cd5c1 30 pc.printf("\r\n");
armdran 1:f0831940e436 31
armdran 0:84a7343cd5c1 32 instruction = device.read(); // Read byte from master
armdran 0:84a7343cd5c1 33
armdran 0:84a7343cd5c1 34 if(instruction == 0xFF) {
armdran 0:84a7343cd5c1 35 continue;
armdran 0:84a7343cd5c1 36 }
armdran 0:84a7343cd5c1 37
armdran 0:84a7343cd5c1 38 uint8_t reply = instruction + 0x10;
armdran 0:84a7343cd5c1 39 device.reply(reply);
armdran 0:84a7343cd5c1 40
armdran 0:84a7343cd5c1 41 pc.printf("waiting for reply signal");
armdran 1:f0831940e436 42
armdran 0:84a7343cd5c1 43 while(!device.receive()) {
armdran 0:84a7343cd5c1 44 if(i++ % 10000 == 0) {
armdran 0:84a7343cd5c1 45 printf(".");
armdran 0:84a7343cd5c1 46 }
armdran 0:84a7343cd5c1 47 }
armdran 1:f0831940e436 48
armdran 0:84a7343cd5c1 49 pc.printf("\r\n");
armdran 0:84a7343cd5c1 50
armdran 0:84a7343cd5c1 51 uint8_t ignore = device.read();
armdran 0:84a7343cd5c1 52
armdran 0:84a7343cd5c1 53 pc.printf("instruction: 0x%X; reply: 0x%X; dummy_instruction: 0x%X\r\n", instruction, reply, ignore);
armdran 0:84a7343cd5c1 54
armdran 0:84a7343cd5c1 55 }
armdran 0:84a7343cd5c1 56
armdran 0:84a7343cd5c1 57 }