sample

Dependencies:   SDFileSystem USBDevice mbed

Committer:
NT32
Date:
Fri Sep 12 05:12:02 2014 +0000
Revision:
0:0b48f20e6d6e
sample

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NT32 0:0b48f20e6d6e 1 #include "mbed.h"
NT32 0:0b48f20e6d6e 2 #include "USBSerial.h"
NT32 0:0b48f20e6d6e 3 #include "SDFileSystem.h"
NT32 0:0b48f20e6d6e 4
NT32 0:0b48f20e6d6e 5 #define CW 0x01
NT32 0:0b48f20e6d6e 6 #define CCW 0x02
NT32 0:0b48f20e6d6e 7 #define STOP 0x03
NT32 0:0b48f20e6d6e 8 #define FREE 0x00
NT32 0:0b48f20e6d6e 9
NT32 0:0b48f20e6d6e 10 DigitalOut led(P1_28);
NT32 0:0b48f20e6d6e 11 DigitalOut cs0(P0_20);
NT32 0:0b48f20e6d6e 12
NT32 0:0b48f20e6d6e 13 DigitalIn sw(P0_1);
NT32 0:0b48f20e6d6e 14
NT32 0:0b48f20e6d6e 15 PwmOut pwm(P1_26);
NT32 0:0b48f20e6d6e 16
NT32 0:0b48f20e6d6e 17 USBSerial vcom;
NT32 0:0b48f20e6d6e 18
NT32 0:0b48f20e6d6e 19 Timer t;
NT32 0:0b48f20e6d6e 20
NT32 0:0b48f20e6d6e 21 SPI spi(P1_22, NC, P1_15);
NT32 0:0b48f20e6d6e 22 BusOut mdrive0(P1_19, P1_25);
NT32 0:0b48f20e6d6e 23
NT32 0:0b48f20e6d6e 24 SDFileSystem sd(P0_9, P0_8, P1_29, P1_31, "sd");
NT32 0:0b48f20e6d6e 25
NT32 0:0b48f20e6d6e 26 union MCP4922
NT32 0:0b48f20e6d6e 27 {
NT32 0:0b48f20e6d6e 28 uint16_t command;
NT32 0:0b48f20e6d6e 29 struct
NT32 0:0b48f20e6d6e 30 {
NT32 0:0b48f20e6d6e 31 //DAC data bits
NT32 0:0b48f20e6d6e 32 uint16_t D :12;
NT32 0:0b48f20e6d6e 33 //Output power down control bit
NT32 0:0b48f20e6d6e 34 uint8_t SHDN:1;
NT32 0:0b48f20e6d6e 35 //Outout gain select bit
NT32 0:0b48f20e6d6e 36 uint8_t GA :1;
NT32 0:0b48f20e6d6e 37 //Vref input buffer Control bit
NT32 0:0b48f20e6d6e 38 uint8_t BUF :1;
NT32 0:0b48f20e6d6e 39 //DACa or DACb select bit
NT32 0:0b48f20e6d6e 40 uint8_t AB :1;
NT32 0:0b48f20e6d6e 41 }bit;
NT32 0:0b48f20e6d6e 42 };
NT32 0:0b48f20e6d6e 43 union MCP4922 dac = {0xF7F};
NT32 0:0b48f20e6d6e 44
NT32 0:0b48f20e6d6e 45 void systeminit();
NT32 0:0b48f20e6d6e 46
NT32 0:0b48f20e6d6e 47 int main(){
NT32 0:0b48f20e6d6e 48 uint16_t velocity = 0;
NT32 0:0b48f20e6d6e 49 char str[64];
NT32 0:0b48f20e6d6e 50 systeminit();
NT32 0:0b48f20e6d6e 51 mdrive0 = CW;
NT32 0:0b48f20e6d6e 52 pwm = 0.2;
NT32 0:0b48f20e6d6e 53 while(1){
NT32 0:0b48f20e6d6e 54 led = !led;
NT32 0:0b48f20e6d6e 55 velocity += 100;
NT32 0:0b48f20e6d6e 56 if(velocity > 4095) velocity = 0;
NT32 0:0b48f20e6d6e 57 dac.bit.D = velocity;
NT32 0:0b48f20e6d6e 58 cs0 = 0;
NT32 0:0b48f20e6d6e 59 spi.write(dac.command);
NT32 0:0b48f20e6d6e 60 cs0 = 1;
NT32 0:0b48f20e6d6e 61 if(sw == 0){
NT32 0:0b48f20e6d6e 62 mkdir("/sd/mydir", 0777);
NT32 0:0b48f20e6d6e 63
NT32 0:0b48f20e6d6e 64 FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
NT32 0:0b48f20e6d6e 65 if(fp == NULL)
NT32 0:0b48f20e6d6e 66 {
NT32 0:0b48f20e6d6e 67 vcom.printf("Could not open file for write\n");
NT32 0:0b48f20e6d6e 68 break;
NT32 0:0b48f20e6d6e 69 }
NT32 0:0b48f20e6d6e 70 t.start();
NT32 0:0b48f20e6d6e 71 fprintf(fp, "Hello fun SD");
NT32 0:0b48f20e6d6e 72 t.stop();
NT32 0:0b48f20e6d6e 73 fclose(fp);
NT32 0:0b48f20e6d6e 74 vcom.printf("The time taken was %d micro seconds\n", t.read_us());
NT32 0:0b48f20e6d6e 75 vcom.printf("goodbye\n");
NT32 0:0b48f20e6d6e 76
NT32 0:0b48f20e6d6e 77 while(sw == 0){}
NT32 0:0b48f20e6d6e 78 }
NT32 0:0b48f20e6d6e 79 wait(0.1);
NT32 0:0b48f20e6d6e 80 }
NT32 0:0b48f20e6d6e 81 }
NT32 0:0b48f20e6d6e 82
NT32 0:0b48f20e6d6e 83 void systeminit(){
NT32 0:0b48f20e6d6e 84 sw.mode(PullUp);
NT32 0:0b48f20e6d6e 85 wait(0.1);
NT32 0:0b48f20e6d6e 86 cs0 = 1;
NT32 0:0b48f20e6d6e 87 dac.bit.AB = 0;
NT32 0:0b48f20e6d6e 88 dac.bit.BUF = 1;
NT32 0:0b48f20e6d6e 89 dac.bit.GA = 1;
NT32 0:0b48f20e6d6e 90 dac.bit.SHDN = 1;
NT32 0:0b48f20e6d6e 91 dac.bit.D = 1024;
NT32 0:0b48f20e6d6e 92 spi.format(16,0);
NT32 0:0b48f20e6d6e 93 spi.frequency(20000000);
NT32 0:0b48f20e6d6e 94 cs0 = 0;
NT32 0:0b48f20e6d6e 95 spi.write(dac.command);
NT32 0:0b48f20e6d6e 96 cs0 = 1;
NT32 0:0b48f20e6d6e 97 }