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:13:34 2016 +0000
Revision:
4:899dfeba84de
Parent:
3:6d89fd15e299
Impl. AverageAnalogIn

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