BaseMachine Sequencer UI Test
Dependencies: AverageAnalogIn PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7565LCD
Fork of CH12864F-SPI2_Test by
main.cpp@4:899dfeba84de, 2016-08-17 (annotated)
- Committer:
- ryood
- Date:
- Wed Aug 17 13:13:34 2016 +0000
- Revision:
- 4:899dfeba84de
- Parent:
- 3:6d89fd15e299
Impl. AverageAnalogIn
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ryood | 1:23bc297e8bfe | 1 | /* |
ryood | 1:23bc297e8bfe | 2 | * main.cpp |
ryood | 1:23bc297e8bfe | 3 | * BaseMachine Sequencer |
ryood | 1:23bc297e8bfe | 4 | * |
ryood | 1:23bc297e8bfe | 5 | * 2016.08.17 |
ryood | 1:23bc297e8bfe | 6 | * |
ryood | 1:23bc297e8bfe | 7 | */ |
ryood | 2:29f0fe703d39 | 8 | |
ryood | 2:29f0fe703d39 | 9 | #define UART_TRACE (1) |
ryood | 2:29f0fe703d39 | 10 | |
ryood | 0:cbc508b7ebff | 11 | #include "mbed.h" |
ryood | 1:23bc297e8bfe | 12 | #include "rtos.h" |
ryood | 0:cbc508b7ebff | 13 | #include "st7565LCD.h" |
ryood | 2:29f0fe703d39 | 14 | #include "PinDetect.h" |
ryood | 3:6d89fd15e299 | 15 | #include "RotaryEncoder.h" |
ryood | 4:899dfeba84de | 16 | #include "AverageAnalogIn.h" |
ryood | 2:29f0fe703d39 | 17 | #include "Sequence.h" |
ryood | 2:29f0fe703d39 | 18 | #include "ST7565_SequencerDisplay.h" |
ryood | 1:23bc297e8bfe | 19 | |
ryood | 1:23bc297e8bfe | 20 | #define TITLE_STR1 ("BaseMachine Sequencer") |
ryood | 1:23bc297e8bfe | 21 | #define TITLE_STR2 ("20160817") |
ryood | 1:23bc297e8bfe | 22 | |
ryood | 1:23bc297e8bfe | 23 | const int SEQUENCE_N = 16; |
ryood | 1:23bc297e8bfe | 24 | const int PITCH_MAX = 12; |
ryood | 1:23bc297e8bfe | 25 | const int BPM_MIN = 60; |
ryood | 1:23bc297e8bfe | 26 | const int BPM_MAX = 240; |
ryood | 1:23bc297e8bfe | 27 | |
ryood | 2:29f0fe703d39 | 28 | // Devices |
ryood | 2:29f0fe703d39 | 29 | // |
ryood | 0:cbc508b7ebff | 30 | //ST7565(PinName mosi, PinName sclk, PinName cs, PinName rst, PinName a0); |
ryood | 1:23bc297e8bfe | 31 | ST7565 gLCD(PB_15, PB_13, PB_12, PB_2, PB_1); |
ryood | 1:23bc297e8bfe | 32 | |
ryood | 4:899dfeba84de | 33 | AverageAnalogIn AinPulseWidth(PC_2); |
ryood | 4:899dfeba84de | 34 | AverageAnalogIn AinCutOff(PB_0); |
ryood | 4:899dfeba84de | 35 | AverageAnalogIn AinResonance(PC_1); |
ryood | 4:899dfeba84de | 36 | AverageAnalogIn AinEnvMod(PC_3); |
ryood | 4:899dfeba84de | 37 | AverageAnalogIn AinLevel(PC_0); |
ryood | 4:899dfeba84de | 38 | AverageAnalogIn AinDuration(PA_4); |
ryood | 4:899dfeba84de | 39 | AverageAnalogIn AinDecay(PA_1); |
ryood | 4:899dfeba84de | 40 | AverageAnalogIn AinSustain(PA_0); |
ryood | 3:6d89fd15e299 | 41 | |
ryood | 2:29f0fe703d39 | 42 | RotaryEncoder RotEncStep(D2, D3, 0, SEQUENCE_N - 1, 0); |
ryood | 2:29f0fe703d39 | 43 | RotaryEncoder RotEncPitch(D4, D5, 0, PITCH_MAX, 0); |
ryood | 2:29f0fe703d39 | 44 | RotaryEncoder RotEncBpm(D14, D15, BPM_MIN, BPM_MAX, 120); |
ryood | 3:6d89fd15e299 | 45 | |
ryood | 2:29f0fe703d39 | 46 | PinDetect PinWaveShape(PD_2, PullUp); |
ryood | 2:29f0fe703d39 | 47 | PinDetect PinModNumber(PC_11, PullUp); |
ryood | 2:29f0fe703d39 | 48 | PinDetect PinOctaveUp(PC_10, PullUp); |
ryood | 2:29f0fe703d39 | 49 | PinDetect PinOctaveDown(PC_12, PullUp); |
ryood | 2:29f0fe703d39 | 50 | PinDetect PinNoteOnOff(PA_13, PullUp); |
ryood | 2:29f0fe703d39 | 51 | PinDetect PinTie(PA_14, PullUp); |
ryood | 2:29f0fe703d39 | 52 | PinDetect PinAccent(PA_15, PullUp); |
ryood | 2:29f0fe703d39 | 53 | PinDetect PinRunStop(PB_7, PullUp); |
ryood | 2:29f0fe703d39 | 54 | |
ryood | 2:29f0fe703d39 | 55 | // Grobal Variables |
ryood | 2:29f0fe703d39 | 56 | // |
ryood | 2:29f0fe703d39 | 57 | Sequence sequences[SEQUENCE_N]; |
ryood | 2:29f0fe703d39 | 58 | ST7565_SequencerDisplay sequencerDisplay(&gLCD, sequences, SEQUENCE_N); |
ryood | 2:29f0fe703d39 | 59 | |
ryood | 3:6d89fd15e299 | 60 | volatile int currentStep = 0; |
ryood | 3:6d89fd15e299 | 61 | volatile bool isRunning = false; |
ryood | 3:6d89fd15e299 | 62 | volatile bool isDirty = false; |
ryood | 3:6d89fd15e299 | 63 | volatile int bpm = 120; |
ryood | 2:29f0fe703d39 | 64 | volatile uint8_t pinFlag = 0x00; |
ryood | 2:29f0fe703d39 | 65 | |
ryood | 2:29f0fe703d39 | 66 | enum { |
ryood | 2:29f0fe703d39 | 67 | bWaveShape = 0x01, |
ryood | 2:29f0fe703d39 | 68 | bModNumber = 0x02, |
ryood | 2:29f0fe703d39 | 69 | bOctaveUp = 0x04, |
ryood | 2:29f0fe703d39 | 70 | bOctaveDown = 0x08, |
ryood | 2:29f0fe703d39 | 71 | bNoteOnOff = 0x10, |
ryood | 2:29f0fe703d39 | 72 | bTie = 0x20, |
ryood | 2:29f0fe703d39 | 73 | bAccent = 0x40, |
ryood | 2:29f0fe703d39 | 74 | bRunStop = 0x80 |
ryood | 2:29f0fe703d39 | 75 | }; |
ryood | 1:23bc297e8bfe | 76 | |
ryood | 1:23bc297e8bfe | 77 | // とりあえずの変数(後でClassのメンバ変数に格納) |
ryood | 1:23bc297e8bfe | 78 | #define WAVESHAPE_N 2 |
ryood | 1:23bc297e8bfe | 79 | #define MOD_NUMBER_MAX 1 |
ryood | 3:6d89fd15e299 | 80 | volatile int waveShape = 0; |
ryood | 3:6d89fd15e299 | 81 | volatile int modNumber = 0; |
ryood | 3:6d89fd15e299 | 82 | volatile uint8_t pulseWidth; |
ryood | 3:6d89fd15e299 | 83 | volatile uint8_t cutOff; |
ryood | 3:6d89fd15e299 | 84 | volatile uint8_t resonance; |
ryood | 3:6d89fd15e299 | 85 | volatile uint8_t envMod; |
ryood | 3:6d89fd15e299 | 86 | volatile uint8_t level; |
ryood | 3:6d89fd15e299 | 87 | volatile uint8_t duration; |
ryood | 3:6d89fd15e299 | 88 | volatile uint8_t decay; |
ryood | 3:6d89fd15e299 | 89 | volatile uint8_t sustain; |
ryood | 1:23bc297e8bfe | 90 | |
ryood | 1:23bc297e8bfe | 91 | //------------------------------------------------------------------------ |
ryood | 2:29f0fe703d39 | 92 | // PinDetect ISR |
ryood | 2:29f0fe703d39 | 93 | //------------------------------------------------------------------------ |
ryood | 2:29f0fe703d39 | 94 | void swWaveShapePressed() |
ryood | 2:29f0fe703d39 | 95 | { |
ryood | 2:29f0fe703d39 | 96 | pinFlag |= bWaveShape; |
ryood | 2:29f0fe703d39 | 97 | } |
ryood | 2:29f0fe703d39 | 98 | |
ryood | 2:29f0fe703d39 | 99 | void swModNumberPressed() |
ryood | 2:29f0fe703d39 | 100 | { |
ryood | 2:29f0fe703d39 | 101 | pinFlag |= bModNumber; |
ryood | 2:29f0fe703d39 | 102 | } |
ryood | 2:29f0fe703d39 | 103 | |
ryood | 2:29f0fe703d39 | 104 | void swOctaveUpPressed() |
ryood | 2:29f0fe703d39 | 105 | { |
ryood | 2:29f0fe703d39 | 106 | pinFlag |= bOctaveUp; |
ryood | 2:29f0fe703d39 | 107 | } |
ryood | 2:29f0fe703d39 | 108 | |
ryood | 2:29f0fe703d39 | 109 | void swOctaveDownPressed() |
ryood | 2:29f0fe703d39 | 110 | { |
ryood | 2:29f0fe703d39 | 111 | pinFlag |= bOctaveDown; |
ryood | 2:29f0fe703d39 | 112 | } |
ryood | 2:29f0fe703d39 | 113 | |
ryood | 2:29f0fe703d39 | 114 | void swNoteOnOffPressed() |
ryood | 2:29f0fe703d39 | 115 | { |
ryood | 2:29f0fe703d39 | 116 | pinFlag |= bNoteOnOff; |
ryood | 2:29f0fe703d39 | 117 | } |
ryood | 2:29f0fe703d39 | 118 | |
ryood | 2:29f0fe703d39 | 119 | void swTiePressed() |
ryood | 2:29f0fe703d39 | 120 | { |
ryood | 2:29f0fe703d39 | 121 | pinFlag |= bTie; |
ryood | 2:29f0fe703d39 | 122 | } |
ryood | 2:29f0fe703d39 | 123 | |
ryood | 2:29f0fe703d39 | 124 | void swAccentPressed() |
ryood | 2:29f0fe703d39 | 125 | { |
ryood | 2:29f0fe703d39 | 126 | pinFlag |= bAccent; |
ryood | 2:29f0fe703d39 | 127 | } |
ryood | 2:29f0fe703d39 | 128 | |
ryood | 2:29f0fe703d39 | 129 | void swRunStopPressed() |
ryood | 2:29f0fe703d39 | 130 | { |
ryood | 2:29f0fe703d39 | 131 | pinFlag |= bRunStop; |
ryood | 2:29f0fe703d39 | 132 | } |
ryood | 2:29f0fe703d39 | 133 | |
ryood | 2:29f0fe703d39 | 134 | //------------------------------------------------------------------------ |
ryood | 1:23bc297e8bfe | 135 | // Functions |
ryood | 1:23bc297e8bfe | 136 | //------------------------------------------------------------------------ |
ryood | 1:23bc297e8bfe | 137 | void pollingPots() |
ryood | 1:23bc297e8bfe | 138 | { |
ryood | 1:23bc297e8bfe | 139 | //pulseWidth = AinPulseWidth.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 140 | cutOff = AinCutOff.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 141 | resonance = AinResonance.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 142 | //envMod = AinEnvMod.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 143 | //level = AinLevel.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 144 | duration = AinDuration.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 145 | decay = AinDecay.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 146 | sustain = AinSustain.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 147 | } |
ryood | 1:23bc297e8bfe | 148 | |
ryood | 3:6d89fd15e299 | 149 | void pollingRotEncs() |
ryood | 3:6d89fd15e299 | 150 | { |
ryood | 3:6d89fd15e299 | 151 | int _bpm = RotEncBpm.getVal(); |
ryood | 3:6d89fd15e299 | 152 | if (_bpm != bpm) { |
ryood | 3:6d89fd15e299 | 153 | bpm = _bpm; |
ryood | 3:6d89fd15e299 | 154 | isDirty = true; |
ryood | 3:6d89fd15e299 | 155 | } |
ryood | 3:6d89fd15e299 | 156 | |
ryood | 3:6d89fd15e299 | 157 | int _step = RotEncStep.getVal(); |
ryood | 3:6d89fd15e299 | 158 | if (_step != currentStep) { |
ryood | 3:6d89fd15e299 | 159 | currentStep = _step; |
ryood | 3:6d89fd15e299 | 160 | // syncronize sequence value & Rotary Encoder's value |
ryood | 3:6d89fd15e299 | 161 | RotEncPitch.setVal(sequences[currentStep].getPitch()); |
ryood | 3:6d89fd15e299 | 162 | isDirty = true; |
ryood | 3:6d89fd15e299 | 163 | } |
ryood | 3:6d89fd15e299 | 164 | |
ryood | 3:6d89fd15e299 | 165 | int _pitch = RotEncPitch.getVal(); |
ryood | 3:6d89fd15e299 | 166 | if (_pitch != sequences[currentStep].getPitch()) { |
ryood | 3:6d89fd15e299 | 167 | sequences[currentStep].setPitch(_pitch); |
ryood | 3:6d89fd15e299 | 168 | isDirty = true; |
ryood | 3:6d89fd15e299 | 169 | } |
ryood | 3:6d89fd15e299 | 170 | } |
ryood | 3:6d89fd15e299 | 171 | |
ryood | 2:29f0fe703d39 | 172 | void pollingPins() |
ryood | 2:29f0fe703d39 | 173 | { |
ryood | 2:29f0fe703d39 | 174 | if (pinFlag & bWaveShape) { |
ryood | 2:29f0fe703d39 | 175 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 176 | printf("PinWaveShape Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 177 | #endif |
ryood | 2:29f0fe703d39 | 178 | waveShape++; |
ryood | 2:29f0fe703d39 | 179 | if (waveShape == WAVESHAPE_N) { |
ryood | 2:29f0fe703d39 | 180 | waveShape = 0; |
ryood | 2:29f0fe703d39 | 181 | } |
ryood | 2:29f0fe703d39 | 182 | pinFlag &= ~bWaveShape; |
ryood | 2:29f0fe703d39 | 183 | } |
ryood | 2:29f0fe703d39 | 184 | |
ryood | 2:29f0fe703d39 | 185 | if (pinFlag & bModNumber) { |
ryood | 2:29f0fe703d39 | 186 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 187 | printf("PinModNumber Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 188 | #endif |
ryood | 2:29f0fe703d39 | 189 | modNumber++; |
ryood | 2:29f0fe703d39 | 190 | if (modNumber > MOD_NUMBER_MAX) { |
ryood | 2:29f0fe703d39 | 191 | modNumber = 0; |
ryood | 2:29f0fe703d39 | 192 | } |
ryood | 2:29f0fe703d39 | 193 | pinFlag &= ~bModNumber; |
ryood | 2:29f0fe703d39 | 194 | } |
ryood | 2:29f0fe703d39 | 195 | |
ryood | 2:29f0fe703d39 | 196 | if (pinFlag & bOctaveUp) { |
ryood | 2:29f0fe703d39 | 197 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 198 | printf("PinOctaveUp Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 199 | #endif |
ryood | 2:29f0fe703d39 | 200 | sequences[currentStep].setOctave(sequences[currentStep].getOctave() + 1); |
ryood | 2:29f0fe703d39 | 201 | pinFlag &= ~bOctaveUp; |
ryood | 2:29f0fe703d39 | 202 | } |
ryood | 2:29f0fe703d39 | 203 | |
ryood | 2:29f0fe703d39 | 204 | if (pinFlag & bOctaveDown) { |
ryood | 2:29f0fe703d39 | 205 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 206 | printf("PinOctaveDown Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 207 | #endif |
ryood | 2:29f0fe703d39 | 208 | sequences[currentStep].setOctave(sequences[currentStep].getOctave() - 1); |
ryood | 2:29f0fe703d39 | 209 | pinFlag &= ~bOctaveDown; |
ryood | 2:29f0fe703d39 | 210 | } |
ryood | 2:29f0fe703d39 | 211 | |
ryood | 2:29f0fe703d39 | 212 | if (pinFlag & bNoteOnOff) { |
ryood | 2:29f0fe703d39 | 213 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 214 | printf("PinNoteOnOff Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 215 | #endif |
ryood | 2:29f0fe703d39 | 216 | sequences[currentStep].noteOn = !sequences[currentStep].noteOn; |
ryood | 2:29f0fe703d39 | 217 | pinFlag &= ~bNoteOnOff; |
ryood | 2:29f0fe703d39 | 218 | } |
ryood | 2:29f0fe703d39 | 219 | |
ryood | 2:29f0fe703d39 | 220 | if (pinFlag & bTie) { |
ryood | 2:29f0fe703d39 | 221 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 222 | printf("PinTie Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 223 | #endif |
ryood | 2:29f0fe703d39 | 224 | sequences[currentStep].tie = !sequences[currentStep].tie; |
ryood | 2:29f0fe703d39 | 225 | pinFlag &= ~bTie; |
ryood | 2:29f0fe703d39 | 226 | } |
ryood | 2:29f0fe703d39 | 227 | |
ryood | 2:29f0fe703d39 | 228 | if (pinFlag & bAccent) { |
ryood | 2:29f0fe703d39 | 229 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 230 | printf("PinAccent Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 231 | #endif |
ryood | 2:29f0fe703d39 | 232 | sequences[currentStep].accent = !sequences[currentStep].accent; |
ryood | 2:29f0fe703d39 | 233 | pinFlag &= ~bAccent; |
ryood | 2:29f0fe703d39 | 234 | } |
ryood | 2:29f0fe703d39 | 235 | |
ryood | 2:29f0fe703d39 | 236 | if (pinFlag & bRunStop) { |
ryood | 2:29f0fe703d39 | 237 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 238 | printf("PinRunStop Pushed\r\n"); |
ryood | 2:29f0fe703d39 | 239 | #endif |
ryood | 2:29f0fe703d39 | 240 | isRunning = !isRunning; |
ryood | 2:29f0fe703d39 | 241 | pinFlag &= ~bRunStop; |
ryood | 2:29f0fe703d39 | 242 | } |
ryood | 2:29f0fe703d39 | 243 | } |
ryood | 2:29f0fe703d39 | 244 | |
ryood | 1:23bc297e8bfe | 245 | void dumpToLCD() |
ryood | 1:23bc297e8bfe | 246 | { |
ryood | 1:23bc297e8bfe | 247 | char buff[64]; |
ryood | 1:23bc297e8bfe | 248 | int col = 0; |
ryood | 1:23bc297e8bfe | 249 | |
ryood | 1:23bc297e8bfe | 250 | gLCD.clear(); |
ryood | 2:29f0fe703d39 | 251 | |
ryood | 1:23bc297e8bfe | 252 | sprintf(buff, "Run: %d", isRunning); |
ryood | 1:23bc297e8bfe | 253 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 254 | sprintf(buff, "BPM: %d", bpm); |
ryood | 1:23bc297e8bfe | 255 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 256 | |
ryood | 1:23bc297e8bfe | 257 | sprintf(buff, "Step: %d", currentStep); |
ryood | 1:23bc297e8bfe | 258 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 259 | sprintf(buff, "NoteOn: %d", sequences[currentStep].noteOn); |
ryood | 1:23bc297e8bfe | 260 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 261 | sprintf(buff, "Pitch: %d", sequences[currentStep].getPitch()); |
ryood | 1:23bc297e8bfe | 262 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 263 | sprintf(buff, "Octave: %d", sequences[currentStep].getOctave()); |
ryood | 1:23bc297e8bfe | 264 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 265 | sprintf(buff, "Tie: %d", sequences[currentStep].tie); |
ryood | 1:23bc297e8bfe | 266 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 267 | sprintf(buff, "Accent: %d", sequences[currentStep].accent); |
ryood | 1:23bc297e8bfe | 268 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 269 | |
ryood | 1:23bc297e8bfe | 270 | col = 0; |
ryood | 1:23bc297e8bfe | 271 | sprintf(buff, "WavS: %d", waveShape); |
ryood | 1:23bc297e8bfe | 272 | gLCD.drawstring(64, col++, buff); |
ryood | 1:23bc297e8bfe | 273 | sprintf(buff, "ModN: %d", modNumber); |
ryood | 1:23bc297e8bfe | 274 | gLCD.drawstring(64, col++, buff); |
ryood | 1:23bc297e8bfe | 275 | |
ryood | 1:23bc297e8bfe | 276 | col = 2; |
ryood | 1:23bc297e8bfe | 277 | sprintf(buff, "PW%3d CO%3d", pulseWidth, cutOff); |
ryood | 1:23bc297e8bfe | 278 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 279 | sprintf(buff, "RS%3d EV%3d", resonance, envMod); |
ryood | 1:23bc297e8bfe | 280 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 281 | sprintf(buff, "LV%3d DR%3d", level, duration); |
ryood | 1:23bc297e8bfe | 282 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 283 | sprintf(buff, "DC%3d ST%3d", decay, sustain); |
ryood | 1:23bc297e8bfe | 284 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 285 | |
ryood | 1:23bc297e8bfe | 286 | gLCD.display(); |
ryood | 1:23bc297e8bfe | 287 | } |
ryood | 0:cbc508b7ebff | 288 | |
ryood | 2:29f0fe703d39 | 289 | //------------------------------------------------------------------------ |
ryood | 2:29f0fe703d39 | 290 | // Main routine |
ryood | 2:29f0fe703d39 | 291 | //------------------------------------------------------------------------ |
ryood | 0:cbc508b7ebff | 292 | int main() |
ryood | 0:cbc508b7ebff | 293 | { |
ryood | 2:29f0fe703d39 | 294 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 295 | printf("*** BaseMachine Sequencer ***\r\n"); |
ryood | 2:29f0fe703d39 | 296 | #endif |
ryood | 2:29f0fe703d39 | 297 | |
ryood | 2:29f0fe703d39 | 298 | gLCD.begin(0x12); |
ryood | 2:29f0fe703d39 | 299 | gLCD.clear(); |
ryood | 2:29f0fe703d39 | 300 | gLCD.drawstring(0, 0, TITLE_STR1); |
ryood | 2:29f0fe703d39 | 301 | gLCD.drawstring(0, 1, TITLE_STR2); |
ryood | 2:29f0fe703d39 | 302 | gLCD.display(); |
ryood | 2:29f0fe703d39 | 303 | Thread::wait(1000); |
ryood | 2:29f0fe703d39 | 304 | |
ryood | 3:6d89fd15e299 | 305 | RotEncStep.setInterval(100); |
ryood | 3:6d89fd15e299 | 306 | RotEncPitch.setInterval(100); |
ryood | 3:6d89fd15e299 | 307 | RotEncBpm.setInterval(100); |
ryood | 3:6d89fd15e299 | 308 | |
ryood | 2:29f0fe703d39 | 309 | PinWaveShape.attach_asserted(&swWaveShapePressed); |
ryood | 2:29f0fe703d39 | 310 | PinWaveShape.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 311 | PinWaveShape.setSampleFrequency(); |
ryood | 2:29f0fe703d39 | 312 | |
ryood | 2:29f0fe703d39 | 313 | PinModNumber.attach_asserted(&swModNumberPressed); |
ryood | 2:29f0fe703d39 | 314 | PinModNumber.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 315 | PinModNumber.setSampleFrequency(); |
ryood | 2:29f0fe703d39 | 316 | |
ryood | 2:29f0fe703d39 | 317 | PinOctaveUp.attach_asserted(&swOctaveUpPressed); |
ryood | 2:29f0fe703d39 | 318 | PinOctaveUp.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 319 | PinOctaveUp.setSampleFrequency(); |
ryood | 2:29f0fe703d39 | 320 | |
ryood | 2:29f0fe703d39 | 321 | PinOctaveDown.attach_asserted(&swOctaveDownPressed); |
ryood | 2:29f0fe703d39 | 322 | PinOctaveDown.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 323 | PinOctaveDown.setSampleFrequency(); |
ryood | 0:cbc508b7ebff | 324 | |
ryood | 2:29f0fe703d39 | 325 | PinNoteOnOff.attach_asserted(&swNoteOnOffPressed); |
ryood | 2:29f0fe703d39 | 326 | PinNoteOnOff.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 327 | PinNoteOnOff.setSampleFrequency(); |
ryood | 2:29f0fe703d39 | 328 | |
ryood | 2:29f0fe703d39 | 329 | PinTie.attach_asserted(&swTiePressed); |
ryood | 2:29f0fe703d39 | 330 | PinTie.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 331 | PinTie.setSampleFrequency(); |
ryood | 2:29f0fe703d39 | 332 | |
ryood | 2:29f0fe703d39 | 333 | PinAccent.attach_asserted(&swAccentPressed); |
ryood | 2:29f0fe703d39 | 334 | PinAccent.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 335 | PinAccent.setSampleFrequency(); |
ryood | 2:29f0fe703d39 | 336 | |
ryood | 2:29f0fe703d39 | 337 | PinRunStop.attach_asserted(&swRunStopPressed); |
ryood | 2:29f0fe703d39 | 338 | PinRunStop.setAssertValue(0); |
ryood | 2:29f0fe703d39 | 339 | PinRunStop.setSampleFrequency(); |
ryood | 2:29f0fe703d39 | 340 | |
ryood | 2:29f0fe703d39 | 341 | #if (UART_TRACE) |
ryood | 2:29f0fe703d39 | 342 | printf("Setup Devices OK\r\n"); |
ryood | 2:29f0fe703d39 | 343 | #endif |
ryood | 2:29f0fe703d39 | 344 | |
ryood | 2:29f0fe703d39 | 345 | for (;;) { |
ryood | 1:23bc297e8bfe | 346 | pollingPots(); |
ryood | 2:29f0fe703d39 | 347 | pollingPins(); |
ryood | 3:6d89fd15e299 | 348 | pollingRotEncs(); |
ryood | 1:23bc297e8bfe | 349 | dumpToLCD(); |
ryood | 2:29f0fe703d39 | 350 | } |
ryood | 0:cbc508b7ebff | 351 | } |