Evan Zhang
/
StepperMotorSong
bleh
main.cpp@0:6cc2c1f459f1, 2021-04-25 (annotated)
- Committer:
- cawald18
- Date:
- Sun Apr 25 20:02:35 2021 +0000
- Revision:
- 0:6cc2c1f459f1
- Child:
- 1:58fce6cd1c51
base version;
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() { |
cawald18 | 0:6cc2c1f459f1 | 32 | float note1 = 1.0/(NOTE_A4*2); |
cawald18 | 0:6cc2c1f459f1 | 33 | float note2 = 1.0/(NOTE_CS5*2); |
cawald18 | 0:6cc2c1f459f1 | 34 | float note2m = 1.0/(NOTE_C5*2); |
cawald18 | 0:6cc2c1f459f1 | 35 | float note3 = 1.0/(NOTE_E5*2); |
cawald18 | 0:6cc2c1f459f1 | 36 | t.attach(&f, &Flipper::flip, note1); // the address of the object, member function, and interval |
cawald18 | 0:6cc2c1f459f1 | 37 | t1.attach(&f1, &Flipper::flip, note2); |
cawald18 | 0:6cc2c1f459f1 | 38 | pc.printf("Hello World!\n"); |
cawald18 | 0:6cc2c1f459f1 | 39 | pc.printf("%f",note1); |
cawald18 | 0:6cc2c1f459f1 | 40 | // spin in a main loop. flipper will interrupt it to call flip |
cawald18 | 0:6cc2c1f459f1 | 41 | while(1) { |
cawald18 | 0:6cc2c1f459f1 | 42 | for(int i = 0; i < 10; i++) { |
cawald18 | 0:6cc2c1f459f1 | 43 | t1.attach(&f1, &Flipper::flip, note2); |
cawald18 | 0:6cc2c1f459f1 | 44 | led1 = !led1; |
cawald18 | 0:6cc2c1f459f1 | 45 | wait(0.2); |
cawald18 | 0:6cc2c1f459f1 | 46 | t1.attach(&f1, &Flipper::flip, note3); |
cawald18 | 0:6cc2c1f459f1 | 47 | wait(0.2); |
cawald18 | 0:6cc2c1f459f1 | 48 | } |
cawald18 | 0:6cc2c1f459f1 | 49 | for(int i = 0; i < 10; i++) { |
cawald18 | 0:6cc2c1f459f1 | 50 | t1.attach(&f1, &Flipper::flip, note2m); |
cawald18 | 0:6cc2c1f459f1 | 51 | led1 = !led1; |
cawald18 | 0:6cc2c1f459f1 | 52 | wait(0.2); |
cawald18 | 0:6cc2c1f459f1 | 53 | t1.attach(&f1, &Flipper::flip, note3); |
cawald18 | 0:6cc2c1f459f1 | 54 | wait(0.2); |
cawald18 | 0:6cc2c1f459f1 | 55 | } |
cawald18 | 0:6cc2c1f459f1 | 56 | |
cawald18 | 0:6cc2c1f459f1 | 57 | } |
cawald18 | 0:6cc2c1f459f1 | 58 | } |