VitoMatteo Di Pietro / Mbed 2 deprecated write_RAM_from_serial_without_burst

Dependencies:   mbed

Committer:
dipanto
Date:
Thu Jan 09 16:18:06 2014 +0000
Revision:
0:6592dd426afa
fatto in lab;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dipanto 0:6592dd426afa 1 #include "mbed.h"
dipanto 0:6592dd426afa 2
dipanto 0:6592dd426afa 3 Serial pc(USBTX, USBRX); // tx, rx
dipanto 0:6592dd426afa 4
dipanto 0:6592dd426afa 5 SPI spi(PTD2, PTD3, PTD1); // mosi, miso, sclk
dipanto 0:6592dd426afa 6 DigitalOut cs(PTD0);
dipanto 0:6592dd426afa 7
dipanto 0:6592dd426afa 8 DigitalOut led_red(LED_RED);
dipanto 0:6592dd426afa 9 DigitalOut led_green(LED_GREEN);
dipanto 0:6592dd426afa 10
dipanto 0:6592dd426afa 11 unsigned char c, a, m;
dipanto 0:6592dd426afa 12 unsigned char dato;
dipanto 0:6592dd426afa 13
dipanto 0:6592dd426afa 14 int main()
dipanto 0:6592dd426afa 15 {
dipanto 0:6592dd426afa 16 // Chip must be deselected
dipanto 0:6592dd426afa 17 cs = 1;
dipanto 0:6592dd426afa 18
dipanto 0:6592dd426afa 19 // Setup the spi for 8 bit data
dipanto 0:6592dd426afa 20 spi.format(8,1); //CPOL=0 , CPHA=1 ---> al fronte di salita inizia il bit
dipanto 0:6592dd426afa 21 spi.frequency(800000); // 1 MHz
dipanto 0:6592dd426afa 22 led_red = 1;
dipanto 0:6592dd426afa 23 led_green = 1;
dipanto 0:6592dd426afa 24 pc.baud(115200);
dipanto 0:6592dd426afa 25
dipanto 0:6592dd426afa 26 while(1)
dipanto 0:6592dd426afa 27 {
dipanto 0:6592dd426afa 28 pc.printf("\nPremi 0 per scrittura o 1 per lettura: ");
dipanto 0:6592dd426afa 29 m = pc.getc();
dipanto 0:6592dd426afa 30 switch(m)
dipanto 0:6592dd426afa 31 {
dipanto 0:6592dd426afa 32 case '0': pc.printf("\nInserisci il dato: ");
dipanto 0:6592dd426afa 33 c = pc.getc();
dipanto 0:6592dd426afa 34 pc.printf("\nInserisci l'indirizzo: ");
dipanto 0:6592dd426afa 35 a = pc.getc();
dipanto 0:6592dd426afa 36
dipanto 0:6592dd426afa 37 // write RAM
dipanto 0:6592dd426afa 38 cs = 0;
dipanto 0:6592dd426afa 39 spi.write('#');
dipanto 0:6592dd426afa 40 spi.write(0x06);
dipanto 0:6592dd426afa 41 spi.write(a); //address MSB
dipanto 0:6592dd426afa 42 spi.write(0x01);
dipanto 0:6592dd426afa 43 spi.write(0x01); // address LSB
dipanto 0:6592dd426afa 44 spi.write('#');
dipanto 0:6592dd426afa 45 spi.write(c);
dipanto 0:6592dd426afa 46 while(spi.write(0x55) != '@');
dipanto 0:6592dd426afa 47 pc.printf("\n%c scritto all'indirizzo %c.", c, a);
dipanto 0:6592dd426afa 48 cs = 1;
dipanto 0:6592dd426afa 49 wait(0.01);
dipanto 0:6592dd426afa 50 break;
dipanto 0:6592dd426afa 51
dipanto 0:6592dd426afa 52 case '1': pc.printf("\nInserisci l'indirizzo: ");
dipanto 0:6592dd426afa 53 a = pc.getc();
dipanto 0:6592dd426afa 54 // read RAM
dipanto 0:6592dd426afa 55 cs = 0;
dipanto 0:6592dd426afa 56 spi.write('#');
dipanto 0:6592dd426afa 57 spi.write(0x04);
dipanto 0:6592dd426afa 58 spi.write(a); //address MSB
dipanto 0:6592dd426afa 59 spi.write(0x01);
dipanto 0:6592dd426afa 60 spi.write(0x01); // address LSB
dipanto 0:6592dd426afa 61 while(spi.write(0x55) != '@');// come sopra
dipanto 0:6592dd426afa 62 dato = spi.write(0x55);
dipanto 0:6592dd426afa 63 pc.printf("\nDato letto da RAM all'indirizzo %c: %c", a, dato );
dipanto 0:6592dd426afa 64 dato = spi.write(0x55);
dipanto 0:6592dd426afa 65 pc.printf("%c", dato);
dipanto 0:6592dd426afa 66 cs = 1;
dipanto 0:6592dd426afa 67 wait(0.01);
dipanto 0:6592dd426afa 68
dipanto 0:6592dd426afa 69 default: pc.printf("\nComando errato.");
dipanto 0:6592dd426afa 70 break;
dipanto 0:6592dd426afa 71 }
dipanto 0:6592dd426afa 72 }
dipanto 0:6592dd426afa 73 }