Evan Zhang
/
StepperMotorSong
bleh
main.cpp@1:58fce6cd1c51, 2021-04-25 (annotated)
- Committer:
- aurora_aeterna
- Date:
- Sun Apr 25 22:45:01 2021 +0000
- Revision:
- 1:58fce6cd1c51
- Parent:
- 0:6cc2c1f459f1
with arrays;
Who changed what in which revision?
User | Revision | Line number | New 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 | 0:6cc2c1f459f1 | 4 | Thread motor; |
cawald18 | 0:6cc2c1f459f1 | 5 | |
cawald18 | 0:6cc2c1f459f1 | 6 | Serial pc(USBTX, USBRX); // tx, rx |
cawald18 | 0:6cc2c1f459f1 | 7 | /*void playNote(PwmOut motor, float note){ |
cawald18 | 0:6cc2c1f459f1 | 8 | motor.period(1/note); |
cawald18 | 0:6cc2c1f459f1 | 9 | motor.write(.5f); |
cawald18 | 0:6cc2c1f459f1 | 10 | }*/ |
cawald18 | 0:6cc2c1f459f1 | 11 | |
cawald18 | 0:6cc2c1f459f1 | 12 | |
cawald18 | 0:6cc2c1f459f1 | 13 | class Flipper { |
cawald18 | 0:6cc2c1f459f1 | 14 | public: |
cawald18 | 0:6cc2c1f459f1 | 15 | Flipper(PinName pin) : _pin(pin) { |
cawald18 | 0:6cc2c1f459f1 | 16 | _pin = 0; |
cawald18 | 0:6cc2c1f459f1 | 17 | } |
cawald18 | 0:6cc2c1f459f1 | 18 | void flip() { |
cawald18 | 0:6cc2c1f459f1 | 19 | _pin = !_pin; |
cawald18 | 0:6cc2c1f459f1 | 20 | } |
cawald18 | 0:6cc2c1f459f1 | 21 | private: |
cawald18 | 0:6cc2c1f459f1 | 22 | DigitalOut _pin; |
cawald18 | 0:6cc2c1f459f1 | 23 | }; |
cawald18 | 0:6cc2c1f459f1 | 24 | |
cawald18 | 0:6cc2c1f459f1 | 25 | DigitalOut led1(LED1); |
cawald18 | 0:6cc2c1f459f1 | 26 | Flipper f(p21); |
cawald18 | 0:6cc2c1f459f1 | 27 | Flipper f1(p22); |
cawald18 | 0:6cc2c1f459f1 | 28 | Ticker t; |
cawald18 | 0:6cc2c1f459f1 | 29 | Ticker t1; |
cawald18 | 0:6cc2c1f459f1 | 30 | |
cawald18 | 0:6cc2c1f459f1 | 31 | int main() { |
aurora_aeterna | 1:58fce6cd1c51 | 32 | //float note1 = 1.0/(NOTE_A4*2); |
aurora_aeterna | 1:58fce6cd1c51 | 33 | //float note2 = 1.0/(NOTE_CS5*2); |
aurora_aeterna | 1:58fce6cd1c51 | 34 | //float note2m = 1.0/(NOTE_C5*2); |
aurora_aeterna | 1:58fce6cd1c51 | 35 | //float note3 = 1.0/(NOTE_E5*2); |
aurora_aeterna | 1:58fce6cd1c51 | 36 | |
aurora_aeterna | 1:58fce6cd1c51 | 37 | //parse length here |
aurora_aeterna | 1:58fce6cd1c51 | 38 | int length = 100; |
aurora_aeterna | 1:58fce6cd1c51 | 39 | |
aurora_aeterna | 1:58fce6cd1c51 | 40 | float notes1 [length]; |
aurora_aeterna | 1:58fce6cd1c51 | 41 | float durs1 [length]; |
aurora_aeterna | 1:58fce6cd1c51 | 42 | |
aurora_aeterna | 1:58fce6cd1c51 | 43 | // copy above for more lines of notes |
aurora_aeterna | 1:58fce6cd1c51 | 44 | |
aurora_aeterna | 1:58fce6cd1c51 | 45 | //parsing of notes, needs to partse |
aurora_aeterna | 1:58fce6cd1c51 | 46 | |
aurora_aeterna | 1:58fce6cd1c51 | 47 | //parsing of durs |
aurora_aeterna | 1:58fce6cd1c51 | 48 | |
aurora_aeterna | 1:58fce6cd1c51 | 49 | //t.attach(&f, &Flipper::flip, note1); // the address of the object, member function, and interval |
aurora_aeterna | 1:58fce6cd1c51 | 50 | //t1.attach(&f1, &Flipper::flip, note2); |
cawald18 | 0:6cc2c1f459f1 | 51 | pc.printf("Hello World!\n"); |
aurora_aeterna | 1:58fce6cd1c51 | 52 | //pc.printf("%f",note1); |
cawald18 | 0:6cc2c1f459f1 | 53 | // spin in a main loop. flipper will interrupt it to call flip |
cawald18 | 0:6cc2c1f459f1 | 54 | while(1) { |
aurora_aeterna | 1:58fce6cd1c51 | 55 | for(int i = 0; i < length; i++) { |
aurora_aeterna | 1:58fce6cd1c51 | 56 | t1.attach(&f1, &Flipper::flip, notes[i]); |
aurora_aeterna | 1:58fce6cd1c51 | 57 | wait(durs[i]); |
cawald18 | 0:6cc2c1f459f1 | 58 | } |
cawald18 | 0:6cc2c1f459f1 | 59 | |
cawald18 | 0:6cc2c1f459f1 | 60 | } |
cawald18 | 0:6cc2c1f459f1 | 61 | } |