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 13:08:48 2016 +0000
Revision:
3:6d89fd15e299
Parent:
2:29f0fe703d39
Child:
4:899dfeba84de
Impl. RotaryEncoder

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