BaseMachine Sequencer UI Test
Dependencies: AverageAnalogIn PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7565LCD
Fork of CH12864F-SPI2_Test by
main.cpp@1:23bc297e8bfe, 2016-08-17 (annotated)
- Committer:
- ryood
- Date:
- Wed Aug 17 12:08:31 2016 +0000
- Revision:
- 1:23bc297e8bfe
- Parent:
- 0:cbc508b7ebff
- Child:
- 2:29f0fe703d39
st7565 & Pots(AnalogIn)
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 | 0:cbc508b7ebff | 8 | #include "mbed.h" |
ryood | 1:23bc297e8bfe | 9 | #include "rtos.h" |
ryood | 0:cbc508b7ebff | 10 | #include "st7565LCD.h" |
ryood | 0:cbc508b7ebff | 11 | |
ryood | 1:23bc297e8bfe | 12 | #define UART_TRACE (1) |
ryood | 1:23bc297e8bfe | 13 | //#include "Sequence.h" |
ryood | 1:23bc297e8bfe | 14 | //#include "ST7565_SequencerDisplay.h" |
ryood | 1:23bc297e8bfe | 15 | |
ryood | 1:23bc297e8bfe | 16 | #define TITLE_STR1 ("BaseMachine Sequencer") |
ryood | 1:23bc297e8bfe | 17 | #define TITLE_STR2 ("20160817") |
ryood | 1:23bc297e8bfe | 18 | |
ryood | 1:23bc297e8bfe | 19 | const int SEQUENCE_N = 16; |
ryood | 1:23bc297e8bfe | 20 | const int PITCH_MAX = 12; |
ryood | 1:23bc297e8bfe | 21 | const int BPM_MIN = 60; |
ryood | 1:23bc297e8bfe | 22 | const int BPM_MAX = 240; |
ryood | 1:23bc297e8bfe | 23 | |
ryood | 0:cbc508b7ebff | 24 | //ST7565(PinName mosi, PinName sclk, PinName cs, PinName rst, PinName a0); |
ryood | 1:23bc297e8bfe | 25 | ST7565 gLCD(PB_15, PB_13, PB_12, PB_2, PB_1); |
ryood | 1:23bc297e8bfe | 26 | |
ryood | 1:23bc297e8bfe | 27 | AnalogIn AinPulseWidth(PC_2); |
ryood | 1:23bc297e8bfe | 28 | AnalogIn AinCutOff(PB_0); |
ryood | 1:23bc297e8bfe | 29 | AnalogIn AinResonance(PC_1); |
ryood | 1:23bc297e8bfe | 30 | AnalogIn AinEnvMod(PC_3); |
ryood | 1:23bc297e8bfe | 31 | AnalogIn AinLevel(PC_0); |
ryood | 1:23bc297e8bfe | 32 | AnalogIn AinDuration(PA_4); |
ryood | 1:23bc297e8bfe | 33 | AnalogIn AinDecay(PA_1); |
ryood | 1:23bc297e8bfe | 34 | AnalogIn AinSustain(PA_0); |
ryood | 1:23bc297e8bfe | 35 | |
ryood | 1:23bc297e8bfe | 36 | // とりあえずの変数(後でClassのメンバ変数に格納) |
ryood | 1:23bc297e8bfe | 37 | int waveShape = 0; |
ryood | 1:23bc297e8bfe | 38 | int modNumber = 0; |
ryood | 1:23bc297e8bfe | 39 | #define WAVESHAPE_N 2 |
ryood | 1:23bc297e8bfe | 40 | #define MOD_NUMBER_MAX 1 |
ryood | 1:23bc297e8bfe | 41 | uint8_t pulseWidth; |
ryood | 1:23bc297e8bfe | 42 | uint8_t cutOff; |
ryood | 1:23bc297e8bfe | 43 | uint8_t resonance; |
ryood | 1:23bc297e8bfe | 44 | uint8_t envMod; |
ryood | 1:23bc297e8bfe | 45 | uint8_t level; |
ryood | 1:23bc297e8bfe | 46 | uint8_t duration; |
ryood | 1:23bc297e8bfe | 47 | uint8_t decay; |
ryood | 1:23bc297e8bfe | 48 | uint8_t sustain; |
ryood | 1:23bc297e8bfe | 49 | |
ryood | 1:23bc297e8bfe | 50 | //------------------------------------------------------------------------ |
ryood | 1:23bc297e8bfe | 51 | // Functions |
ryood | 1:23bc297e8bfe | 52 | //------------------------------------------------------------------------ |
ryood | 1:23bc297e8bfe | 53 | void pollingPots() |
ryood | 1:23bc297e8bfe | 54 | { |
ryood | 1:23bc297e8bfe | 55 | //pulseWidth = AinPulseWidth.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 56 | cutOff = AinCutOff.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 57 | resonance = AinResonance.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 58 | //envMod = AinEnvMod.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 59 | //level = AinLevel.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 60 | duration = AinDuration.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 61 | decay = AinDecay.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 62 | sustain = AinSustain.read_u16() >> 8; |
ryood | 1:23bc297e8bfe | 63 | } |
ryood | 1:23bc297e8bfe | 64 | |
ryood | 1:23bc297e8bfe | 65 | void dumpToLCD() |
ryood | 1:23bc297e8bfe | 66 | { |
ryood | 1:23bc297e8bfe | 67 | char buff[64]; |
ryood | 1:23bc297e8bfe | 68 | int col = 0; |
ryood | 1:23bc297e8bfe | 69 | |
ryood | 1:23bc297e8bfe | 70 | gLCD.clear(); |
ryood | 1:23bc297e8bfe | 71 | /* |
ryood | 1:23bc297e8bfe | 72 | sprintf(buff, "Run: %d", isRunning); |
ryood | 1:23bc297e8bfe | 73 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 74 | sprintf(buff, "BPM: %d", bpm); |
ryood | 1:23bc297e8bfe | 75 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 76 | |
ryood | 1:23bc297e8bfe | 77 | sprintf(buff, "Step: %d", currentStep); |
ryood | 1:23bc297e8bfe | 78 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 79 | sprintf(buff, "NoteOn: %d", sequences[currentStep].noteOn); |
ryood | 1:23bc297e8bfe | 80 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 81 | sprintf(buff, "Pitch: %d", sequences[currentStep].getPitch()); |
ryood | 1:23bc297e8bfe | 82 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 83 | sprintf(buff, "Octave: %d", sequences[currentStep].getOctave()); |
ryood | 1:23bc297e8bfe | 84 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 85 | sprintf(buff, "Tie: %d", sequences[currentStep].tie); |
ryood | 1:23bc297e8bfe | 86 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 87 | sprintf(buff, "Accent: %d", sequences[currentStep].accent); |
ryood | 1:23bc297e8bfe | 88 | gLCD.drawstring(0, col++, buff); |
ryood | 1:23bc297e8bfe | 89 | |
ryood | 1:23bc297e8bfe | 90 | col = 0; |
ryood | 1:23bc297e8bfe | 91 | sprintf(buff, "WavS: %d", waveShape); |
ryood | 1:23bc297e8bfe | 92 | gLCD.drawstring(64, col++, buff); |
ryood | 1:23bc297e8bfe | 93 | sprintf(buff, "ModN: %d", modNumber); |
ryood | 1:23bc297e8bfe | 94 | gLCD.drawstring(64, col++, buff); |
ryood | 1:23bc297e8bfe | 95 | */ |
ryood | 1:23bc297e8bfe | 96 | |
ryood | 1:23bc297e8bfe | 97 | col = 2; |
ryood | 1:23bc297e8bfe | 98 | sprintf(buff, "PW%3d CO%3d", pulseWidth, cutOff); |
ryood | 1:23bc297e8bfe | 99 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 100 | sprintf(buff, "RS%3d EV%3d", resonance, envMod); |
ryood | 1:23bc297e8bfe | 101 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 102 | sprintf(buff, "LV%3d DR%3d", level, duration); |
ryood | 1:23bc297e8bfe | 103 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 104 | sprintf(buff, "DC%3d ST%3d", decay, sustain); |
ryood | 1:23bc297e8bfe | 105 | gLCD.drawstring(60, col++, buff); |
ryood | 1:23bc297e8bfe | 106 | |
ryood | 1:23bc297e8bfe | 107 | gLCD.display(); |
ryood | 1:23bc297e8bfe | 108 | } |
ryood | 0:cbc508b7ebff | 109 | |
ryood | 0:cbc508b7ebff | 110 | int main() |
ryood | 0:cbc508b7ebff | 111 | { |
ryood | 1:23bc297e8bfe | 112 | printf("\r\n*** BaseMachine Sequencer Test ***\r\n"); |
ryood | 1:23bc297e8bfe | 113 | gLCD.begin(0x10); |
ryood | 0:cbc508b7ebff | 114 | |
ryood | 0:cbc508b7ebff | 115 | while (true) { |
ryood | 1:23bc297e8bfe | 116 | pollingPots(); |
ryood | 1:23bc297e8bfe | 117 | dumpToLCD(); |
ryood | 0:cbc508b7ebff | 118 | } |
ryood | 0:cbc508b7ebff | 119 | } |