Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-src
Fork of SPI_slave_lpc1114fn28 by
main.cpp@1:f0831940e436, 2015-04-01 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
