Corrected header file include guards.
Fork of hapticFeedback by
hapticFeedback.cpp@1:06fef55a7268, 2015-07-02 (annotated)
- Committer:
- nathanhonka
- Date:
- Thu Jul 02 21:38:15 2015 +0000
- Revision:
- 1:06fef55a7268
- Parent:
- 0:ea2b9b15a433
Corrected header file include guards (did not encapsulate entire header).
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
perr1940 | 0:ea2b9b15a433 | 1 | //11/13/12 MM Made fix to haptic error where exo would freak out when it was in the sitting position and you commanded it to stand up |
perr1940 | 0:ea2b9b15a433 | 2 | #include "mbed.h" |
perr1940 | 0:ea2b9b15a433 | 3 | #include "HipControl.h" |
perr1940 | 0:ea2b9b15a433 | 4 | #include "hapticFeedback.h" |
perr1940 | 0:ea2b9b15a433 | 5 | |
perr1940 | 0:ea2b9b15a433 | 6 | // arpeggio down (A E C# A) = f(880 659 554 440) = T(.0011363 .00151745 .00180505 .0022727) |
perr1940 | 0:ea2b9b15a433 | 7 | // doogie howser MD theme (A(high) A(high) A(Low) A(low) A(high) D#) = f(880 880 440 440 880 622) = T(.0011363 .0011363 .0022727 .0022727 .0011363 .0016077) |
perr1940 | 0:ea2b9b15a433 | 8 | |
perr1940 | 0:ea2b9b15a433 | 9 | const float arpeggio[] = {.0011363, .00151745, .00180505, .0022727}; |
perr1940 | 0:ea2b9b15a433 | 10 | const float arpeggio_t[] = {.1, .1, .1, .1}; |
perr1940 | 0:ea2b9b15a433 | 11 | const float DH[] = {.0011363, .00005, .0011363, .00005, .0022727, .00005, .0022727, .00005, .0011363, .00005, .0016077}; // doogie howser periods |
perr1940 | 0:ea2b9b15a433 | 12 | const float DH_t[] = {.1, .05, .1, .05, .1, .05, .1, .05, .1, .05, .1}; |
perr1940 | 0:ea2b9b15a433 | 13 | const float IronMan[] = {0.0010124,0.0008513,0.00005,0.0008513,0.00005,0.0007584,0.00005,0.0007584,0.0006378,0.0006757,0.0006378,0.0006757,0.0006378,0.0006757,0.0008513,0.000050,0.0008513,0.000050,.0007584,0.00005,0.0007584}; |
perr1940 | 0:ea2b9b15a433 | 14 | const float IronMan_t[] = {.8,.5,.3,.3,.1,.3,.1,.4,.2,.2,.2,.2,.2,.2,.3,.1,.3,.1,.3,.1,.3}; |
perr1940 | 0:ea2b9b15a433 | 15 | const float lockSound[] = {.0011363,.0022727}; |
perr1940 | 0:ea2b9b15a433 | 16 | const float lockSound_t[] = {.3, .3}; |
perr1940 | 0:ea2b9b15a433 | 17 | const float unlockSound[] = {.0022727,.0011363}; |
perr1940 | 0:ea2b9b15a433 | 18 | const float unlockSound_t[] = {.2, .2}; |
perr1940 | 0:ea2b9b15a433 | 19 | const float LowBatterySound[] = {.00151745,.00151745}; |
perr1940 | 0:ea2b9b15a433 | 20 | const float LowBatterySound_t[] = {.1,.1}; |
perr1940 | 0:ea2b9b15a433 | 21 | const short unsigned int IronMan_count=(sizeof(IronMan)/sizeof(IronMan[0]))-1; |
perr1940 | 0:ea2b9b15a433 | 22 | const short unsigned int arpeggio_count=(sizeof(arpeggio)/sizeof(arpeggio[0]))-1; |
perr1940 | 0:ea2b9b15a433 | 23 | const short unsigned int DH_count=(sizeof(DH)/sizeof(DH[0]))-1; |
perr1940 | 0:ea2b9b15a433 | 24 | const short unsigned int lockSound_count=(sizeof(lockSound)/sizeof(lockSound[0]))-1; |
perr1940 | 0:ea2b9b15a433 | 25 | const short unsigned int unlockSound_count=(sizeof(unlockSound)/sizeof(unlockSound[0]))-1; |
perr1940 | 0:ea2b9b15a433 | 26 | |
perr1940 | 0:ea2b9b15a433 | 27 | |
perr1940 | 0:ea2b9b15a433 | 28 | bool hapticOn = false; |
perr1940 | 0:ea2b9b15a433 | 29 | int buzzMode; |
perr1940 | 0:ea2b9b15a433 | 30 | |
perr1940 | 0:ea2b9b15a433 | 31 | MotorMusic::MotorMusic(HipControl& left, HipControl& right):pwmDefault(0.00005),count(0),count_max(0),_left(left),_right(right) |
perr1940 | 0:ea2b9b15a433 | 32 | { |
perr1940 | 0:ea2b9b15a433 | 33 | time.start(); |
perr1940 | 0:ea2b9b15a433 | 34 | } |
perr1940 | 0:ea2b9b15a433 | 35 | void MotorMusic::setDefault(float a) |
perr1940 | 0:ea2b9b15a433 | 36 | { |
perr1940 | 0:ea2b9b15a433 | 37 | pwmDefault=a; |
perr1940 | 0:ea2b9b15a433 | 38 | } |
perr1940 | 0:ea2b9b15a433 | 39 | void MotorMusic::check() |
perr1940 | 0:ea2b9b15a433 | 40 | { |
perr1940 | 0:ea2b9b15a433 | 41 | if (musicFlag==1) { |
perr1940 | 0:ea2b9b15a433 | 42 | song(); |
perr1940 | 0:ea2b9b15a433 | 43 | } |
perr1940 | 0:ea2b9b15a433 | 44 | } |
perr1940 | 0:ea2b9b15a433 | 45 | void MotorMusic::init() |
perr1940 | 0:ea2b9b15a433 | 46 | { |
perr1940 | 0:ea2b9b15a433 | 47 | _left.pwmPeriod(ptrNotes[count]); //play first note |
perr1940 | 0:ea2b9b15a433 | 48 | _right.pwmPeriod(ptrNotes[count]); //play first note |
perr1940 | 0:ea2b9b15a433 | 49 | } |
perr1940 | 0:ea2b9b15a433 | 50 | void MotorMusic::song() |
perr1940 | 0:ea2b9b15a433 | 51 | { |
perr1940 | 0:ea2b9b15a433 | 52 | if(time.read()>=ptrTimes[count]) { //change note if the time to play the previous note is over |
perr1940 | 0:ea2b9b15a433 | 53 | count++; //change note counter |
perr1940 | 0:ea2b9b15a433 | 54 | time.reset(); //reset and start timer |
perr1940 | 0:ea2b9b15a433 | 55 | _left.pwmPeriod(ptrNotes[count]); //increment note |
perr1940 | 0:ea2b9b15a433 | 56 | _right.pwmPeriod(ptrNotes[count]); //increment note |
perr1940 | 0:ea2b9b15a433 | 57 | } |
perr1940 | 0:ea2b9b15a433 | 58 | if(count>count_max) { |
perr1940 | 0:ea2b9b15a433 | 59 | _left.pwmPeriod(pwmDefault); //increment note |
perr1940 | 0:ea2b9b15a433 | 60 | _right.pwmPeriod(pwmDefault); //increment note |
perr1940 | 0:ea2b9b15a433 | 61 | count=0; //counter to change notes |
perr1940 | 0:ea2b9b15a433 | 62 | musicFlag=0; //flag to signal playing music |
perr1940 | 0:ea2b9b15a433 | 63 | } |
perr1940 | 0:ea2b9b15a433 | 64 | } |
perr1940 | 0:ea2b9b15a433 | 65 | |
perr1940 | 0:ea2b9b15a433 | 66 | |
perr1940 | 0:ea2b9b15a433 | 67 | void MotorMusic::playIronMan() |
perr1940 | 0:ea2b9b15a433 | 68 | { |
perr1940 | 0:ea2b9b15a433 | 69 | ptrNotes=IronMan; //point to the Iron Man notes array |
perr1940 | 0:ea2b9b15a433 | 70 | ptrTimes=IronMan_t;//point to the Iron Man times array |
perr1940 | 0:ea2b9b15a433 | 71 | time.reset();//reset timer for music |
perr1940 | 0:ea2b9b15a433 | 72 | musicFlag=1;//flag to play music |
perr1940 | 0:ea2b9b15a433 | 73 | count_max=IronMan_count; |
perr1940 | 0:ea2b9b15a433 | 74 | init(); |
perr1940 | 0:ea2b9b15a433 | 75 | } |
perr1940 | 0:ea2b9b15a433 | 76 | void MotorMusic::playArpeggio() |
perr1940 | 0:ea2b9b15a433 | 77 | { |
perr1940 | 0:ea2b9b15a433 | 78 | ptrNotes=arpeggio; //point to the Iron Man notes array |
perr1940 | 0:ea2b9b15a433 | 79 | ptrTimes=arpeggio_t;//point to the Iron Man times array |
perr1940 | 0:ea2b9b15a433 | 80 | time.reset();//reset timer for music |
perr1940 | 0:ea2b9b15a433 | 81 | musicFlag=1;//flag to play music |
perr1940 | 0:ea2b9b15a433 | 82 | count_max=arpeggio_count; |
perr1940 | 0:ea2b9b15a433 | 83 | init(); |
perr1940 | 0:ea2b9b15a433 | 84 | } |
perr1940 | 0:ea2b9b15a433 | 85 | void MotorMusic::playDH() |
perr1940 | 0:ea2b9b15a433 | 86 | { |
perr1940 | 0:ea2b9b15a433 | 87 | ptrNotes=DH; //point to the Iron Man notes array |
perr1940 | 0:ea2b9b15a433 | 88 | ptrTimes=DH_t;//point to the Iron Man times array |
perr1940 | 0:ea2b9b15a433 | 89 | time.reset();//reset timer for music |
perr1940 | 0:ea2b9b15a433 | 90 | musicFlag=1;//flag to play music |
perr1940 | 0:ea2b9b15a433 | 91 | count_max=DH_count; |
perr1940 | 0:ea2b9b15a433 | 92 | init(); |
perr1940 | 0:ea2b9b15a433 | 93 | } |
perr1940 | 0:ea2b9b15a433 | 94 | void MotorMusic::playLock() |
perr1940 | 0:ea2b9b15a433 | 95 | { |
perr1940 | 0:ea2b9b15a433 | 96 | ptrNotes=lockSound; //point to the Iron Man notes array |
perr1940 | 0:ea2b9b15a433 | 97 | ptrTimes=lockSound_t;//point to the Iron Man times array |
perr1940 | 0:ea2b9b15a433 | 98 | time.reset();//reset timer for music |
perr1940 | 0:ea2b9b15a433 | 99 | musicFlag=1;//flag to play music |
perr1940 | 0:ea2b9b15a433 | 100 | count_max=lockSound_count; |
perr1940 | 0:ea2b9b15a433 | 101 | init(); |
perr1940 | 0:ea2b9b15a433 | 102 | } |
perr1940 | 0:ea2b9b15a433 | 103 | void MotorMusic::playUnlock() |
perr1940 | 0:ea2b9b15a433 | 104 | { |
perr1940 | 0:ea2b9b15a433 | 105 | ptrNotes=unlockSound; //point to the Iron Man notes array |
perr1940 | 0:ea2b9b15a433 | 106 | ptrTimes=unlockSound_t;//point to the Iron Man times array |
perr1940 | 0:ea2b9b15a433 | 107 | time.reset();//reset timer for music |
perr1940 | 0:ea2b9b15a433 | 108 | musicFlag=1;//flag to play music |
perr1940 | 0:ea2b9b15a433 | 109 | count_max=unlockSound_count; |
perr1940 | 0:ea2b9b15a433 | 110 | init(); |
perr1940 | 0:ea2b9b15a433 | 111 | } |
perr1940 | 0:ea2b9b15a433 | 112 | //WTF is this? MM |
perr1940 | 0:ea2b9b15a433 | 113 | |
perr1940 | 0:ea2b9b15a433 | 114 |