Evan Zhang / Mbed 2 deprecated StepperMotorSong4180

Dependencies:   mbed mbed-rtos SDFileSystem11

Committer:
cawald18
Date:
Mon Apr 26 21:29:08 2021 +0000
Revision:
4:f14ca9203f62
Parent:
3:869a56651e96
Child:
5:bc7213111da0
Base Version before merging code;

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 4:f14ca9203f62 27
cawald18 0:6cc2c1f459f1 28 DigitalOut led1(LED1);
cawald18 0:6cc2c1f459f1 29 Ticker t;
cawald18 0:6cc2c1f459f1 30 Ticker t1;
cawald18 0:6cc2c1f459f1 31
cawald18 0:6cc2c1f459f1 32 int main() {
cawald18 2:39d41fd0f52b 33 bool holdNotes = 0; //Stop reading notes file
cawald18 2:39d41fd0f52b 34 bool holdStart = 0; //Stop reading start times
cawald18 2:39d41fd0f52b 35 bool holdFinish = 0; //Stop reading in finish times
cawald18 1:ddbed1542633 36 pc.baud(115200);
cawald18 1:ddbed1542633 37 const char * d;
cawald18 1:ddbed1542633 38 std::string str = "123.4567";
cawald18 1:ddbed1542633 39 d = str.c_str();
cawald18 1:ddbed1542633 40 // convert string to float
cawald18 1:ddbed1542633 41 float num_float = std::atof(d);
cawald18 1:ddbed1542633 42
cawald18 1:ddbed1542633 43 // convert string to double
cawald18 1:ddbed1542633 44 pc.printf("%f\n", num_float-1.0);
cawald18 1:ddbed1542633 45 int temp = 0;
cawald18 1:ddbed1542633 46
cawald18 1:ddbed1542633 47 pc.printf("Hello World!");
cawald18 1:ddbed1542633 48 string output = "";
cawald18 1:ddbed1542633 49
cawald18 1:ddbed1542633 50 FILE *fpn = fopen("/sd/notesmatrix.txt", "r");
cawald18 1:ddbed1542633 51 FILE *fpstart = fopen("/sd/notesstart.txt", "r");
cawald18 1:ddbed1542633 52 FILE *fpfinish = fopen("/sd/notesfinish.txt","r");
cawald18 1:ddbed1542633 53 unsigned char c;
cawald18 1:ddbed1542633 54 pc.printf("I'm here\n");
cawald18 2:39d41fd0f52b 55 Note myNote = Note(0, 0, 0);
cawald18 1:ddbed1542633 56 while (!feof(fpn)){ // while not end of file
cawald18 2:39d41fd0f52b 57 while(!holdNotes) {
cawald18 1:ddbed1542633 58 c = fgetc(fpn); // get a character/byte from the file
cawald18 1:ddbed1542633 59 if(c == ','){
cawald18 1:ddbed1542633 60 stringstream degree(output);
cawald18 1:ddbed1542633 61 degree >> temp;
cawald18 2:39d41fd0f52b 62 pc.printf("%d\n", temp);
cawald18 1:ddbed1542633 63 output = "";
cawald18 2:39d41fd0f52b 64 holdNotes = 1;
cawald18 1:ddbed1542633 65 } else {
cawald18 1:ddbed1542633 66 output += c;
cawald18 1:ddbed1542633 67 }
cawald18 2:39d41fd0f52b 68 }
cawald18 2:39d41fd0f52b 69 myNote.midiNote = temp;
cawald18 1:ddbed1542633 70 output = "";
cawald18 2:39d41fd0f52b 71 while(!holdStart) {
cawald18 2:39d41fd0f52b 72 c = fgetc(fpstart);
cawald18 2:39d41fd0f52b 73 if(c == ','){
cawald18 2:39d41fd0f52b 74 d = output.c_str();
cawald18 2:39d41fd0f52b 75 num_float = std::atof(d);
cawald18 2:39d41fd0f52b 76 pc.printf("%f\n", num_float);
cawald18 2:39d41fd0f52b 77 output = "";
cawald18 2:39d41fd0f52b 78 myNote.start = num_float;
cawald18 2:39d41fd0f52b 79 holdStart = 1;
cawald18 2:39d41fd0f52b 80 } else {
cawald18 2:39d41fd0f52b 81 output+= c;
cawald18 2:39d41fd0f52b 82 }
cawald18 1:ddbed1542633 83
cawald18 2:39d41fd0f52b 84 }
cawald18 1:ddbed1542633 85 output = "";
cawald18 2:39d41fd0f52b 86 while(!holdFinish){
cawald18 1:ddbed1542633 87 c = fgetc(fpfinish);
cawald18 1:ddbed1542633 88 if(c == ','){
cawald18 1:ddbed1542633 89 d = output.c_str();
cawald18 1:ddbed1542633 90 num_float = std::atof(d);
cawald18 1:ddbed1542633 91 pc.printf("%f\n", num_float);
cawald18 1:ddbed1542633 92 output = "";
cawald18 2:39d41fd0f52b 93 myNote.stop = num_float;
cawald18 2:39d41fd0f52b 94 holdFinish = 1;
cawald18 1:ddbed1542633 95 } else {
cawald18 1:ddbed1542633 96 output+= c;
cawald18 1:ddbed1542633 97 }
cawald18 1:ddbed1542633 98
cawald18 2:39d41fd0f52b 99 } //ONCE WE REACH THIS POINT ALL PARTS OF THE NOTE OBJECT SHOULD BE SET
cawald18 0:6cc2c1f459f1 100 pc.printf("Hello World!\n");
cawald18 1:ddbed1542633 101 pc.printf("%d", myNote.midiNote);
cawald18 0:6cc2c1f459f1 102 // spin in a main loop. flipper will interrupt it to call flip
cawald18 0:6cc2c1f459f1 103 while(1) {
cawald18 0:6cc2c1f459f1 104 led1 = !led1;
cawald18 0:6cc2c1f459f1 105 wait(0.2);
cawald18 3:869a56651e96 106
cawald18 0:6cc2c1f459f1 107 }
cawald18 2:39d41fd0f52b 108
cawald18 2:39d41fd0f52b 109 }
cawald18 2:39d41fd0f52b 110
cawald18 2:39d41fd0f52b 111
cawald18 2:39d41fd0f52b 112
cawald18 0:6cc2c1f459f1 113 }