SDI lab / Mbed 2 deprecated Test_burst_3

Dependencies:   mbed

Committer:
Brianmic
Date:
Wed Jan 22 10:26:07 2014 +0000
Revision:
0:f6eb2c272bbb
Test funzionante

Who changed what in which revision?

UserRevisionLine numberNew 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 }