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:6592dd426afa, 2014-01-09 (annotated)
- Committer:
- dipanto
- Date:
- Thu Jan 09 16:18:06 2014 +0000
- Revision:
- 0:6592dd426afa
fatto in lab;
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |