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.
main.cpp@0:1ca47c273d0f, 2012-01-30 (annotated)
- Committer:
- cbayley
- Date:
- Mon Jan 30 23:08:52 2012 +0000
- Revision:
- 0:1ca47c273d0f
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| cbayley | 0:1ca47c273d0f | 1 | // Relay bytes received as SPI slave to PC-USB-Serial |
| cbayley | 0:1ca47c273d0f | 2 | |
| cbayley | 0:1ca47c273d0f | 3 | #include "mbed.h" |
| cbayley | 0:1ca47c273d0f | 4 | #include "MODSERIAL.h" |
| cbayley | 0:1ca47c273d0f | 5 | |
| cbayley | 0:1ca47c273d0f | 6 | //SPISlave slave(p5, NC, p7, p8); |
| cbayley | 0:1ca47c273d0f | 7 | SPISlave slave(p11, NC, p13, p14); |
| cbayley | 0:1ca47c273d0f | 8 | MODSERIAL pc(USBTX,NC,1024,0); |
| cbayley | 0:1ca47c273d0f | 9 | //Serial pc(USBTX,NC); |
| cbayley | 0:1ca47c273d0f | 10 | DigitalOut ledTX(LED1); |
| cbayley | 0:1ca47c273d0f | 11 | DigitalOut ledRX(LED2); |
| cbayley | 0:1ca47c273d0f | 12 | DigitalOut ledOV(LED4); |
| cbayley | 0:1ca47c273d0f | 13 | Timeout toRXLed; |
| cbayley | 0:1ca47c273d0f | 14 | |
| cbayley | 0:1ca47c273d0f | 15 | |
| cbayley | 0:1ca47c273d0f | 16 | #define fSPI (5000000) |
| cbayley | 0:1ca47c273d0f | 17 | #define BAUD (115200) |
| cbayley | 0:1ca47c273d0f | 18 | |
| cbayley | 0:1ca47c273d0f | 19 | |
| cbayley | 0:1ca47c273d0f | 20 | void offRXLed(void) |
| cbayley | 0:1ca47c273d0f | 21 | { |
| cbayley | 0:1ca47c273d0f | 22 | ledRX = 0; |
| cbayley | 0:1ca47c273d0f | 23 | } |
| cbayley | 0:1ca47c273d0f | 24 | |
| cbayley | 0:1ca47c273d0f | 25 | void onRX(void) |
| cbayley | 0:1ca47c273d0f | 26 | { |
| cbayley | 0:1ca47c273d0f | 27 | ledRX = 1; |
| cbayley | 0:1ca47c273d0f | 28 | toRXLed.attach(offRXLed,0.1); |
| cbayley | 0:1ca47c273d0f | 29 | } |
| cbayley | 0:1ca47c273d0f | 30 | |
| cbayley | 0:1ca47c273d0f | 31 | // This function is called when a character goes from the TX buffer |
| cbayley | 0:1ca47c273d0f | 32 | // to the Uart THR FIFO register. |
| cbayley | 0:1ca47c273d0f | 33 | void txCallback(MODSERIAL_IRQ_INFO *q) { |
| cbayley | 0:1ca47c273d0f | 34 | ledTX = 1; |
| cbayley | 0:1ca47c273d0f | 35 | } |
| cbayley | 0:1ca47c273d0f | 36 | |
| cbayley | 0:1ca47c273d0f | 37 | // This function is called when TX buffer goes empty |
| cbayley | 0:1ca47c273d0f | 38 | void txEmpty(MODSERIAL_IRQ_INFO *q) { |
| cbayley | 0:1ca47c273d0f | 39 | ledTX = 0; |
| cbayley | 0:1ca47c273d0f | 40 | } |
| cbayley | 0:1ca47c273d0f | 41 | |
| cbayley | 0:1ca47c273d0f | 42 | // This function is called when TX buffer is Overrun |
| cbayley | 0:1ca47c273d0f | 43 | void txOVR(MODSERIAL_IRQ_INFO *q) { |
| cbayley | 0:1ca47c273d0f | 44 | ledOV = 1; |
| cbayley | 0:1ca47c273d0f | 45 | } |
| cbayley | 0:1ca47c273d0f | 46 | |
| cbayley | 0:1ca47c273d0f | 47 | |
| cbayley | 0:1ca47c273d0f | 48 | int main() |
| cbayley | 0:1ca47c273d0f | 49 | { |
| cbayley | 0:1ca47c273d0f | 50 | pc.baud(BAUD); |
| cbayley | 0:1ca47c273d0f | 51 | slave.frequency(fSPI); |
| cbayley | 0:1ca47c273d0f | 52 | pc.attach(&txEmpty, MODSERIAL::TxEmpty); |
| cbayley | 0:1ca47c273d0f | 53 | pc.attach(&txCallback, MODSERIAL::TxIrq); |
| cbayley | 0:1ca47c273d0f | 54 | pc.attach(&txOVR, MODSERIAL::TxOvIrq); |
| cbayley | 0:1ca47c273d0f | 55 | |
| cbayley | 0:1ca47c273d0f | 56 | pc.printf("\n==== SPI 2 USB ready... ===\n"); |
| cbayley | 0:1ca47c273d0f | 57 | |
| cbayley | 0:1ca47c273d0f | 58 | while(1) |
| cbayley | 0:1ca47c273d0f | 59 | { |
| cbayley | 0:1ca47c273d0f | 60 | while ( !slave.receive() ); |
| cbayley | 0:1ca47c273d0f | 61 | { |
| cbayley | 0:1ca47c273d0f | 62 | pc.putc( slave.read() ); // Read byte from master |
| cbayley | 0:1ca47c273d0f | 63 | onRX(); |
| cbayley | 0:1ca47c273d0f | 64 | } |
| cbayley | 0:1ca47c273d0f | 65 | } |
| cbayley | 0:1ca47c273d0f | 66 | } |