Kevin Rhyne
/
Solenocarina
Self-playing Ocarina!
Fork of Solenoc by
HardwareControl.cpp@0:a50960b2f6bd, 2015-12-08 (annotated)
- Committer:
- kevinrhyne
- Date:
- Tue Dec 08 12:23:46 2015 +0000
- Revision:
- 0:a50960b2f6bd
solenoc
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kevinrhyne | 0:a50960b2f6bd | 1 | #include "HardwareControl.h" |
kevinrhyne | 0:a50960b2f6bd | 2 | |
kevinrhyne | 0:a50960b2f6bd | 3 | HardwareControl::HardwareControl(){ |
kevinrhyne | 0:a50960b2f6bd | 4 | /* |
kevinrhyne | 0:a50960b2f6bd | 5 | SOL1(p25); |
kevinrhyne | 0:a50960b2f6bd | 6 | SOL2(p26); |
kevinrhyne | 0:a50960b2f6bd | 7 | SOL3(p27); |
kevinrhyne | 0:a50960b2f6bd | 8 | SOL4(p28); |
kevinrhyne | 0:a50960b2f6bd | 9 | SOL5(p23); |
kevinrhyne | 0:a50960b2f6bd | 10 | SOL6(p22); |
kevinrhyne | 0:a50960b2f6bd | 11 | SOL7(p21); |
kevinrhyne | 0:a50960b2f6bd | 12 | |
kevinrhyne | 0:a50960b2f6bd | 13 | */ |
kevinrhyne | 0:a50960b2f6bd | 14 | |
kevinrhyne | 0:a50960b2f6bd | 15 | } |
kevinrhyne | 0:a50960b2f6bd | 16 | |
kevinrhyne | 0:a50960b2f6bd | 17 | |
kevinrhyne | 0:a50960b2f6bd | 18 | |
kevinrhyne | 0:a50960b2f6bd | 19 | void HardwareControl::playNote(int binaryNote, int length){ |
kevinrhyne | 0:a50960b2f6bd | 20 | |
kevinrhyne | 0:a50960b2f6bd | 21 | |
kevinrhyne | 0:a50960b2f6bd | 22 | // Solenoc note controls |
kevinrhyne | 0:a50960b2f6bd | 23 | // ===================== |
kevinrhyne | 0:a50960b2f6bd | 24 | // |
kevinrhyne | 0:a50960b2f6bd | 25 | // C arpeggio : 1 - 193 - 241 - 254 |
kevinrhyne | 0:a50960b2f6bd | 26 | // |
kevinrhyne | 0:a50960b2f6bd | 27 | // C: NONE ASSERTEDS, AIR |
kevinrhyne | 0:a50960b2f6bd | 28 | // Binary represent-------------ation: 00000001 |
kevinrhyne | 0:a50960b2f6bd | 29 | // Integer representation: 1 |
kevinrhyne | 0:a50960b2f6bd | 30 | |
kevinrhyne | 0:a50960b2f6bd | 31 | // D: SOL1, AIR |
kevinrhyne | 0:a50960b2f6bd | 32 | // Binary representation: 10000001 |
kevinrhyne | 0:a50960b2f6bd | 33 | // Integer representation: 129 |
kevinrhyne | 0:a50960b2f6bd | 34 | |
kevinrhyne | 0:a50960b2f6bd | 35 | // E: SOL1, SOL2, AIR |
kevinrhyne | 0:a50960b2f6bd | 36 | // Binary representation: 11000001 |
kevinrhyne | 0:a50960b2f6bd | 37 | // Integer representation: 193 |
kevinrhyne | 0:a50960b2f6bd | 38 | |
kevinrhyne | 0:a50960b2f6bd | 39 | // F: SOL1, SOL2, AIR |
kevinrhyne | 0:a50960b2f6bd | 40 | // Binary representation: 11100001 |
kevinrhyne | 0:a50960b2f6bd | 41 | // Integer representation: 225 |
kevinrhyne | 0:a50960b2f6bd | 42 | |
kevinrhyne | 0:a50960b2f6bd | 43 | // Fs: SOL1, SOL3, SOL4, AIR |
kevinrhyne | 0:a50960b2f6bd | 44 | // Binary representation: 10110001 |
kevinrhyne | 0:a50960b2f6bd | 45 | // Integer representation: 177 |
kevinrhyne | 0:a50960b2f6bd | 46 | |
kevinrhyne | 0:a50960b2f6bd | 47 | // G: SOL1, SOL2, SOL3, SOL4, AIR |
kevinrhyne | 0:a50960b2f6bd | 48 | // Binary representation: 11110001 |
kevinrhyne | 0:a50960b2f6bd | 49 | // Integer representation: 241 |
kevinrhyne | 0:a50960b2f6bd | 50 | |
kevinrhyne | 0:a50960b2f6bd | 51 | // Gs: SOL1, SOL3, SOL4, SOL5, AIR |
kevinrhyne | 0:a50960b2f6bd | 52 | // Binary representation: 10111001 |
kevinrhyne | 0:a50960b2f6bd | 53 | // Integer representation: 185 |
kevinrhyne | 0:a50960b2f6bd | 54 | |
kevinrhyne | 0:a50960b2f6bd | 55 | // A: SOL1, SOL2, SOL3, SOL4, SOL5, AIR |
kevinrhyne | 0:a50960b2f6bd | 56 | // Binary representation: 11111001 |
kevinrhyne | 0:a50960b2f6bd | 57 | // Integer representation: 249 |
kevinrhyne | 0:a50960b2f6bd | 58 | |
kevinrhyne | 0:a50960b2f6bd | 59 | // As: SOL1, SOL3, SOL4, SOL5, SOL6, AIR |
kevinrhyne | 0:a50960b2f6bd | 60 | // Binary representation: 10111101 |
kevinrhyne | 0:a50960b2f6bd | 61 | // Integer representation: 189 |
kevinrhyne | 0:a50960b2f6bd | 62 | |
kevinrhyne | 0:a50960b2f6bd | 63 | // B: SOL1 - SOL6, AIR |
kevinrhyne | 0:a50960b2f6bd | 64 | // Binary representation: 11111101 |
kevinrhyne | 0:a50960b2f6bd | 65 | // Integer representation: 254 |
kevinrhyne | 0:a50960b2f6bd | 66 | |
kevinrhyne | 0:a50960b2f6bd | 67 | // R: ALL ASSERTED // REST |
kevinrhyne | 0:a50960b2f6bd | 68 | // Binary representation: 11111110 |
kevinrhyne | 0:a50960b2f6bd | 69 | // Integer representation: 254 |
kevinrhyne | 0:a50960b2f6bd | 70 | |
kevinrhyne | 0:a50960b2f6bd | 71 | |
kevinrhyne | 0:a50960b2f6bd | 72 | DigitalOut SOL1(p25); |
kevinrhyne | 0:a50960b2f6bd | 73 | DigitalOut SOL2(p26); |
kevinrhyne | 0:a50960b2f6bd | 74 | DigitalOut SOL3(p27); |
kevinrhyne | 0:a50960b2f6bd | 75 | DigitalOut SOL4(p28); |
kevinrhyne | 0:a50960b2f6bd | 76 | DigitalOut SOL5(p23); |
kevinrhyne | 0:a50960b2f6bd | 77 | DigitalOut SOL6(p22); |
kevinrhyne | 0:a50960b2f6bd | 78 | DigitalOut SOL7(p21); |
kevinrhyne | 0:a50960b2f6bd | 79 | DigitalOut AIR(p24); //Air |
kevinrhyne | 0:a50960b2f6bd | 80 | |
kevinrhyne | 0:a50960b2f6bd | 81 | SOL1 = binaryNote & 128; |
kevinrhyne | 0:a50960b2f6bd | 82 | SOL2 = binaryNote & 64; |
kevinrhyne | 0:a50960b2f6bd | 83 | SOL3 = binaryNote & 32; |
kevinrhyne | 0:a50960b2f6bd | 84 | SOL4 = binaryNote & 16; |
kevinrhyne | 0:a50960b2f6bd | 85 | SOL5 = binaryNote & 8; |
kevinrhyne | 0:a50960b2f6bd | 86 | SOL6 = binaryNote & 4; |
kevinrhyne | 0:a50960b2f6bd | 87 | SOL7 = binaryNote & 2; |
kevinrhyne | 0:a50960b2f6bd | 88 | AIR = binaryNote & 1; |
kevinrhyne | 0:a50960b2f6bd | 89 | |
kevinrhyne | 0:a50960b2f6bd | 90 | wait_ms(length); |
kevinrhyne | 0:a50960b2f6bd | 91 | |
kevinrhyne | 0:a50960b2f6bd | 92 | } |