bleh

Dependencies:   mbed mbed-rtos

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?

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 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 }