sample
Dependencies: SDFileSystem USBDevice mbed
main.cpp
- Committer:
- NT32
- Date:
- 2014-09-12
- Revision:
- 0:0b48f20e6d6e
File content as of revision 0:0b48f20e6d6e:
#include "mbed.h" #include "USBSerial.h" #include "SDFileSystem.h" #define CW 0x01 #define CCW 0x02 #define STOP 0x03 #define FREE 0x00 DigitalOut led(P1_28); DigitalOut cs0(P0_20); DigitalIn sw(P0_1); PwmOut pwm(P1_26); USBSerial vcom; Timer t; SPI spi(P1_22, NC, P1_15); BusOut mdrive0(P1_19, P1_25); SDFileSystem sd(P0_9, P0_8, P1_29, P1_31, "sd"); union MCP4922 { uint16_t command; struct { //DAC data bits uint16_t D :12; //Output power down control bit uint8_t SHDN:1; //Outout gain select bit uint8_t GA :1; //Vref input buffer Control bit uint8_t BUF :1; //DACa or DACb select bit uint8_t AB :1; }bit; }; union MCP4922 dac = {0xF7F}; void systeminit(); int main(){ uint16_t velocity = 0; char str[64]; systeminit(); mdrive0 = CW; pwm = 0.2; while(1){ led = !led; velocity += 100; if(velocity > 4095) velocity = 0; dac.bit.D = velocity; cs0 = 0; spi.write(dac.command); cs0 = 1; if(sw == 0){ mkdir("/sd/mydir", 0777); FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); if(fp == NULL) { vcom.printf("Could not open file for write\n"); break; } t.start(); fprintf(fp, "Hello fun SD"); t.stop(); fclose(fp); vcom.printf("The time taken was %d micro seconds\n", t.read_us()); vcom.printf("goodbye\n"); while(sw == 0){} } wait(0.1); } } void systeminit(){ sw.mode(PullUp); wait(0.1); cs0 = 1; dac.bit.AB = 0; dac.bit.BUF = 1; dac.bit.GA = 1; dac.bit.SHDN = 1; dac.bit.D = 1024; spi.format(16,0); spi.frequency(20000000); cs0 = 0; spi.write(dac.command); cs0 = 1; }