BaseMachine Sequencer UI Test

Dependencies:   AverageAnalogIn PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7565LCD

Fork of CH12864F-SPI2_Test by Ryo Od

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?

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