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
main.cpp@0:f6eb2c272bbb, 2014-01-22 (annotated)
- Committer:
- Brianmic
- Date:
- Wed Jan 22 10:26:07 2014 +0000
- Revision:
- 0:f6eb2c272bbb
Test funzionante
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| Brianmic | 0:f6eb2c272bbb | 1 | #include "mbed.h" | 
| Brianmic | 0:f6eb2c272bbb | 2 | |
| Brianmic | 0:f6eb2c272bbb | 3 | DigitalOut redLed( LED_RED ); // Led used to signal errors | 
| Brianmic | 0:f6eb2c272bbb | 4 | DigitalOut greenLed( LED_GREEN ); | 
| Brianmic | 0:f6eb2c272bbb | 5 | DigitalOut spiSS( PTD0 ); // Slave select is handled by GPIO | 
| Brianmic | 0:f6eb2c272bbb | 6 | Serial PC (USBTX, USBRX); | 
| Brianmic | 0:f6eb2c272bbb | 7 | |
| Brianmic | 0:f6eb2c272bbb | 8 | int main() { | 
| Brianmic | 0:f6eb2c272bbb | 9 | redLed = 1; | 
| Brianmic | 0:f6eb2c272bbb | 10 | greenLed = 1; | 
| Brianmic | 0:f6eb2c272bbb | 11 | // Create SPI master instance, 8bit, CPOL=0, CPHA=1, 100kHz | 
| Brianmic | 0:f6eb2c272bbb | 12 | SPI spiMaster( PTD2, PTD3, PTD1 ); // mosi, miso, sclk | 
| Brianmic | 0:f6eb2c272bbb | 13 | spiMaster.format( 8, 1 ); | 
| Brianmic | 0:f6eb2c272bbb | 14 | spiMaster.frequency( 100000 ); | 
| Brianmic | 0:f6eb2c272bbb | 15 | |
| Brianmic | 0:f6eb2c272bbb | 16 | PC.baud(115200); | 
| Brianmic | 0:f6eb2c272bbb | 17 | // Deselect slave | 
| Brianmic | 0:f6eb2c272bbb | 18 | spiSS = 1; | 
| Brianmic | 0:f6eb2c272bbb | 19 | // Forever | 
| Brianmic | 0:f6eb2c272bbb | 20 | wait(1); | 
| Brianmic | 0:f6eb2c272bbb | 21 | |
| Brianmic | 0:f6eb2c272bbb | 22 | while( 1 ) { | 
| Brianmic | 0:f6eb2c272bbb | 23 | int rx = 0; | 
| Brianmic | 0:f6eb2c272bbb | 24 | uint8_t data[256]; | 
| Brianmic | 0:f6eb2c272bbb | 25 | // Burst write | 
| Brianmic | 0:f6eb2c272bbb | 26 | spiSS = 0; | 
| Brianmic | 0:f6eb2c272bbb | 27 | spiMaster.write( '#' ); | 
| Brianmic | 0:f6eb2c272bbb | 28 | spiMaster.write( 0x07 ); // write RAM burst | 
| Brianmic | 0:f6eb2c272bbb | 29 | spiMaster.write( 0x01 ); // AA1 | 
| Brianmic | 0:f6eb2c272bbb | 30 | spiMaster.write( 0x02 ); // AA2 | 
| Brianmic | 0:f6eb2c272bbb | 31 | spiMaster.write( 0x03 ); // AA3 | 
| Brianmic | 0:f6eb2c272bbb | 32 | |
| Brianmic | 0:f6eb2c272bbb | 33 | |
| Brianmic | 0:f6eb2c272bbb | 34 | for(int i = 0; i < 128 ; i++ ) | 
| Brianmic | 0:f6eb2c272bbb | 35 | { | 
| Brianmic | 0:f6eb2c272bbb | 36 | spiMaster.write( 2*i ); //DD1 | 
| Brianmic | 0:f6eb2c272bbb | 37 | spiMaster.write( 2*i+1 ); //DD2 | 
| Brianmic | 0:f6eb2c272bbb | 38 | |
| Brianmic | 0:f6eb2c272bbb | 39 | rx = 0; | 
| Brianmic | 0:f6eb2c272bbb | 40 | |
| Brianmic | 0:f6eb2c272bbb | 41 | while(rx != '@') | 
| Brianmic | 0:f6eb2c272bbb | 42 | { | 
| Brianmic | 0:f6eb2c272bbb | 43 | rx = spiMaster.write( 0x55 ); | 
| Brianmic | 0:f6eb2c272bbb | 44 | } | 
| Brianmic | 0:f6eb2c272bbb | 45 | |
| Brianmic | 0:f6eb2c272bbb | 46 | rx = 0; | 
| Brianmic | 0:f6eb2c272bbb | 47 | } | 
| Brianmic | 0:f6eb2c272bbb | 48 | |
| Brianmic | 0:f6eb2c272bbb | 49 | spiMaster.write( '#' ); // fine burst | 
| Brianmic | 0:f6eb2c272bbb | 50 | |
| Brianmic | 0:f6eb2c272bbb | 51 | spiSS = 1; | 
| Brianmic | 0:f6eb2c272bbb | 52 | |
| Brianmic | 0:f6eb2c272bbb | 53 | wait(1); | 
| Brianmic | 0:f6eb2c272bbb | 54 | |
| Brianmic | 0:f6eb2c272bbb | 55 | spiSS = 0; | 
| Brianmic | 0:f6eb2c272bbb | 56 | spiMaster.write( '#' ); | 
| Brianmic | 0:f6eb2c272bbb | 57 | spiMaster.write( 0x05 ); // write RAM burst | 
| Brianmic | 0:f6eb2c272bbb | 58 | spiMaster.write( 0x01 ); // AA1 | 
| Brianmic | 0:f6eb2c272bbb | 59 | spiMaster.write( 0x02 ); // AA2 | 
| Brianmic | 0:f6eb2c272bbb | 60 | spiMaster.write( 0x03 ); // AA3 | 
| Brianmic | 0:f6eb2c272bbb | 61 | |
| Brianmic | 0:f6eb2c272bbb | 62 | |
| Brianmic | 0:f6eb2c272bbb | 63 | for(int i = 0; i < 128; i++ ) | 
| Brianmic | 0:f6eb2c272bbb | 64 | { | 
| Brianmic | 0:f6eb2c272bbb | 65 | while(rx != '@') | 
| Brianmic | 0:f6eb2c272bbb | 66 | { | 
| Brianmic | 0:f6eb2c272bbb | 67 | rx = spiMaster.write( 0x55 ); | 
| Brianmic | 0:f6eb2c272bbb | 68 | } | 
| Brianmic | 0:f6eb2c272bbb | 69 | |
| Brianmic | 0:f6eb2c272bbb | 70 | rx = 0; | 
| Brianmic | 0:f6eb2c272bbb | 71 | |
| Brianmic | 0:f6eb2c272bbb | 72 | data[2*i] = spiMaster.write( 0x55 ); //DD1 | 
| Brianmic | 0:f6eb2c272bbb | 73 | data[2*i+1] = spiMaster.write( 0x55 ); //DD2 | 
| Brianmic | 0:f6eb2c272bbb | 74 | |
| Brianmic | 0:f6eb2c272bbb | 75 | } | 
| Brianmic | 0:f6eb2c272bbb | 76 | |
| Brianmic | 0:f6eb2c272bbb | 77 | spiMaster.write( '#' ); // fine burst | 
| Brianmic | 0:f6eb2c272bbb | 78 | |
| Brianmic | 0:f6eb2c272bbb | 79 | spiSS = 1; | 
| Brianmic | 0:f6eb2c272bbb | 80 | |
| Brianmic | 0:f6eb2c272bbb | 81 | wait(1); | 
| Brianmic | 0:f6eb2c272bbb | 82 | |
| Brianmic | 0:f6eb2c272bbb | 83 | for(int i = 0; i < 128 ; i++) | 
| Brianmic | 0:f6eb2c272bbb | 84 | { | 
| Brianmic | 0:f6eb2c272bbb | 85 | PC.printf("%d..%d\r\n", data[2*i], data[2*i+1]); | 
| Brianmic | 0:f6eb2c272bbb | 86 | } | 
| Brianmic | 0:f6eb2c272bbb | 87 | |
| Brianmic | 0:f6eb2c272bbb | 88 | //viualizza sui led i valori letti | 
| Brianmic | 0:f6eb2c272bbb | 89 | for(int i = 0; i < 128; i++) | 
| Brianmic | 0:f6eb2c272bbb | 90 | { | 
| Brianmic | 0:f6eb2c272bbb | 91 | greenLed = 0; | 
| Brianmic | 0:f6eb2c272bbb | 92 | spiSS = 0; | 
| Brianmic | 0:f6eb2c272bbb | 93 | spiMaster.write( '#' ); | 
| Brianmic | 0:f6eb2c272bbb | 94 | spiMaster.write( 0x02 ); | 
| Brianmic | 0:f6eb2c272bbb | 95 | spiMaster.write( data[2*i] ); | 
| Brianmic | 0:f6eb2c272bbb | 96 | |
| Brianmic | 0:f6eb2c272bbb | 97 | wait(0.25); | 
| Brianmic | 0:f6eb2c272bbb | 98 | greenLed = 1; | 
| Brianmic | 0:f6eb2c272bbb | 99 | wait(0.25); | 
| Brianmic | 0:f6eb2c272bbb | 100 | |
| Brianmic | 0:f6eb2c272bbb | 101 | greenLed = 0; | 
| Brianmic | 0:f6eb2c272bbb | 102 | spiMaster.write( '#' ); | 
| Brianmic | 0:f6eb2c272bbb | 103 | spiMaster.write( 0x02 ); | 
| Brianmic | 0:f6eb2c272bbb | 104 | spiMaster.write( data[2*i+1] ); | 
| Brianmic | 0:f6eb2c272bbb | 105 | spiSS = 1; | 
| Brianmic | 0:f6eb2c272bbb | 106 | |
| Brianmic | 0:f6eb2c272bbb | 107 | wait(0.25); | 
| Brianmic | 0:f6eb2c272bbb | 108 | greenLed = 1; | 
| Brianmic | 0:f6eb2c272bbb | 109 | wait(0.25); | 
| Brianmic | 0:f6eb2c272bbb | 110 | |
| Brianmic | 0:f6eb2c272bbb | 111 | } | 
| Brianmic | 0:f6eb2c272bbb | 112 | |
| Brianmic | 0:f6eb2c272bbb | 113 | wait(5); | 
| Brianmic | 0:f6eb2c272bbb | 114 | } | 
| Brianmic | 0:f6eb2c272bbb | 115 | } |