Evan Zhang / Mbed 2 deprecated StepperMotorSong4180

Dependencies:   mbed mbed-rtos SDFileSystem11

Committer:
cawald18
Date:
Mon Apr 26 21:13:10 2021 +0000
Revision:
1:ddbed1542633
Parent:
0:6cc2c1f459f1
Child:
2:39d41fd0f52b
Basic Version Working with all three files reading;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cawald18 0:6cc2c1f459f1 1 #include "mbed.h"
cawald18 0:6cc2c1f459f1 2 #include "rtos.h"
cawald18 0:6cc2c1f459f1 3 #include "notes.h"
cawald18 1:ddbed1542633 4 #include "SDFileSystem.h"
cawald18 1:ddbed1542633 5 #include <string>
cawald18 1:ddbed1542633 6 #include <sstream>
cawald18 1:ddbed1542633 7 #include <iostream>
cawald18 1:ddbed1542633 8 #include <cstdlib>
cawald18 1:ddbed1542633 9
cawald18 0:6cc2c1f459f1 10 Thread motor;
cawald18 1:ddbed1542633 11 SDFileSystem sd(p5, p6, p7, p8, "sd");
cawald18 0:6cc2c1f459f1 12 Serial pc(USBTX, USBRX); // tx, rx
cawald18 1:ddbed1542633 13 class Note {
cawald18 1:ddbed1542633 14 public:
cawald18 1:ddbed1542633 15 int midiNote;
cawald18 1:ddbed1542633 16 float start;
cawald18 1:ddbed1542633 17 float stop;
cawald18 1:ddbed1542633 18 Note(int midi, float sta, float sto) {
cawald18 1:ddbed1542633 19 start = sta;
cawald18 1:ddbed1542633 20 stop = sto;
cawald18 1:ddbed1542633 21 midiNote = midi;
cawald18 1:ddbed1542633 22 }
cawald18 1:ddbed1542633 23 };
cawald18 1:ddbed1542633 24
cawald18 0:6cc2c1f459f1 25
cawald18 0:6cc2c1f459f1 26
cawald18 0:6cc2c1f459f1 27 class Flipper {
cawald18 0:6cc2c1f459f1 28 public:
cawald18 0:6cc2c1f459f1 29 Flipper(PinName pin) : _pin(pin) {
cawald18 0:6cc2c1f459f1 30 _pin = 0;
cawald18 0:6cc2c1f459f1 31 }
cawald18 0:6cc2c1f459f1 32 void flip() {
cawald18 0:6cc2c1f459f1 33 _pin = !_pin;
cawald18 0:6cc2c1f459f1 34 }
cawald18 0:6cc2c1f459f1 35 private:
cawald18 0:6cc2c1f459f1 36 DigitalOut _pin;
cawald18 0:6cc2c1f459f1 37 };
cawald18 0:6cc2c1f459f1 38
cawald18 0:6cc2c1f459f1 39 DigitalOut led1(LED1);
cawald18 0:6cc2c1f459f1 40 Flipper f(p21);
cawald18 0:6cc2c1f459f1 41 Flipper f1(p22);
cawald18 0:6cc2c1f459f1 42 Ticker t;
cawald18 0:6cc2c1f459f1 43 Ticker t1;
cawald18 0:6cc2c1f459f1 44
cawald18 0:6cc2c1f459f1 45 int main() {
cawald18 1:ddbed1542633 46 pc.baud(115200);
cawald18 1:ddbed1542633 47 const char * d;
cawald18 1:ddbed1542633 48 std::string str = "123.4567";
cawald18 1:ddbed1542633 49 d = str.c_str();
cawald18 1:ddbed1542633 50 // convert string to float
cawald18 1:ddbed1542633 51 float num_float = std::atof(d);
cawald18 1:ddbed1542633 52
cawald18 1:ddbed1542633 53 // convert string to double
cawald18 1:ddbed1542633 54 pc.printf("%f\n", num_float-1.0);
cawald18 1:ddbed1542633 55 int temp = 0;
cawald18 1:ddbed1542633 56
cawald18 1:ddbed1542633 57 pc.printf("Hello World!");
cawald18 1:ddbed1542633 58 string output = "";
cawald18 1:ddbed1542633 59
cawald18 1:ddbed1542633 60 FILE *fpn = fopen("/sd/notesmatrix.txt", "r");
cawald18 1:ddbed1542633 61 FILE *fpstart = fopen("/sd/notesstart.txt", "r");
cawald18 1:ddbed1542633 62 FILE *fpfinish = fopen("/sd/notesfinish.txt","r");
cawald18 1:ddbed1542633 63 unsigned char c;
cawald18 1:ddbed1542633 64 pc.printf("I'm here\n");
cawald18 1:ddbed1542633 65
cawald18 1:ddbed1542633 66 while (!feof(fpn)){ // while not end of file
cawald18 1:ddbed1542633 67 c = fgetc(fpn); // get a character/byte from the file
cawald18 1:ddbed1542633 68 if(c == ','){
cawald18 1:ddbed1542633 69 stringstream degree(output);
cawald18 1:ddbed1542633 70 degree >> temp;
cawald18 1:ddbed1542633 71 pc.printf("%d\n", temp-1);
cawald18 1:ddbed1542633 72 output = "";
cawald18 1:ddbed1542633 73 } else {
cawald18 1:ddbed1542633 74 output += c;
cawald18 1:ddbed1542633 75 }
cawald18 1:ddbed1542633 76 }
cawald18 1:ddbed1542633 77 output = "";
cawald18 1:ddbed1542633 78 while(!feof(fpstart)){
cawald18 1:ddbed1542633 79 c = fgetc(fpstart);
cawald18 1:ddbed1542633 80 if(c == ','){
cawald18 1:ddbed1542633 81 d = output.c_str();
cawald18 1:ddbed1542633 82 num_float = std::atof(d);
cawald18 1:ddbed1542633 83 pc.printf("%f\n", num_float);
cawald18 1:ddbed1542633 84 output = "";
cawald18 1:ddbed1542633 85 } else {
cawald18 1:ddbed1542633 86 output+= c;
cawald18 1:ddbed1542633 87 }
cawald18 1:ddbed1542633 88
cawald18 1:ddbed1542633 89 }
cawald18 1:ddbed1542633 90 output = "";
cawald18 1:ddbed1542633 91 while(!feof(fpfinish)){
cawald18 1:ddbed1542633 92 c = fgetc(fpfinish);
cawald18 1:ddbed1542633 93 if(c == ','){
cawald18 1:ddbed1542633 94 d = output.c_str();
cawald18 1:ddbed1542633 95 num_float = std::atof(d);
cawald18 1:ddbed1542633 96 pc.printf("%f\n", num_float);
cawald18 1:ddbed1542633 97 output = "";
cawald18 1:ddbed1542633 98 } else {
cawald18 1:ddbed1542633 99 output+= c;
cawald18 1:ddbed1542633 100 }
cawald18 1:ddbed1542633 101
cawald18 1:ddbed1542633 102 }
cawald18 1:ddbed1542633 103
cawald18 1:ddbed1542633 104
cawald18 0:6cc2c1f459f1 105 float note1 = 1.0/(NOTE_A4*2);
cawald18 0:6cc2c1f459f1 106 float note2 = 1.0/(NOTE_CS5*2);
cawald18 0:6cc2c1f459f1 107 float note2m = 1.0/(NOTE_C5*2);
cawald18 0:6cc2c1f459f1 108 float note3 = 1.0/(NOTE_E5*2);
cawald18 0:6cc2c1f459f1 109 t.attach(&f, &Flipper::flip, note1); // the address of the object, member function, and interval
cawald18 0:6cc2c1f459f1 110 t1.attach(&f1, &Flipper::flip, note2);
cawald18 0:6cc2c1f459f1 111 pc.printf("Hello World!\n");
cawald18 1:ddbed1542633 112 pc.printf("%f\n",note1);
cawald18 1:ddbed1542633 113 Note myNote = Note(1, 1.0, 1.0);
cawald18 1:ddbed1542633 114 pc.printf("%d", myNote.midiNote);
cawald18 0:6cc2c1f459f1 115 // spin in a main loop. flipper will interrupt it to call flip
cawald18 0:6cc2c1f459f1 116 while(1) {
cawald18 0:6cc2c1f459f1 117 for(int i = 0; i < 10; i++) {
cawald18 0:6cc2c1f459f1 118 t1.attach(&f1, &Flipper::flip, note2);
cawald18 0:6cc2c1f459f1 119 led1 = !led1;
cawald18 0:6cc2c1f459f1 120 wait(0.2);
cawald18 0:6cc2c1f459f1 121 t1.attach(&f1, &Flipper::flip, note3);
cawald18 0:6cc2c1f459f1 122 wait(0.2);
cawald18 0:6cc2c1f459f1 123 }
cawald18 0:6cc2c1f459f1 124 for(int i = 0; i < 10; i++) {
cawald18 0:6cc2c1f459f1 125 t1.attach(&f1, &Flipper::flip, note2m);
cawald18 0:6cc2c1f459f1 126 led1 = !led1;
cawald18 0:6cc2c1f459f1 127 wait(0.2);
cawald18 0:6cc2c1f459f1 128 t1.attach(&f1, &Flipper::flip, note3);
cawald18 0:6cc2c1f459f1 129 wait(0.2);
cawald18 0:6cc2c1f459f1 130 }
cawald18 0:6cc2c1f459f1 131
cawald18 0:6cc2c1f459f1 132 }
cawald18 0:6cc2c1f459f1 133 }