EXT-B now works without delay
This commit is contained in:
@ -11,13 +11,14 @@
|
|||||||
#define PULSE_LENGTH 12 //ms (with 12 ms you can't get higher than 208bpm)
|
#define PULSE_LENGTH 12 //ms (with 12 ms you can't get higher than 208bpm)
|
||||||
#define MAXBPM 200 //250 at 24ppqn with 5ms pulse will be 50/50 square wave
|
#define MAXBPM 200 //250 at 24ppqn with 5ms pulse will be 50/50 square wave
|
||||||
#define MINBPM 20
|
#define MINBPM 20
|
||||||
#define SCREEN_TIMEOUT 30000 //Turn display off after 30 sec
|
#define SCREEN_TIMEOUT 120000 //Turn display off after 2 min
|
||||||
|
|
||||||
#define INPUT_PIN 2 //needs to be an interrupt pin
|
|
||||||
#define ENC_BTN_PIN 14
|
#define ENC_BTN_PIN 14
|
||||||
#define ENC_D1_PIN 17
|
#define ENC_D1_PIN 17
|
||||||
#define ENC_D2_PIN 4
|
#define ENC_D2_PIN 4
|
||||||
#define START_STOP_BTN_PIN 5
|
#define START_STOP_BTN_PIN 5
|
||||||
|
|
||||||
|
#define INPUT_PIN 2 //needs to be an interrupt pin
|
||||||
#define ANALOGUE_INPUT_1_PIN A2
|
#define ANALOGUE_INPUT_1_PIN A2
|
||||||
#define ANALOGUE_INPUT_2_PIN A1
|
#define ANALOGUE_INPUT_2_PIN A1
|
||||||
|
|
||||||
@ -145,7 +146,7 @@ void loop() {
|
|||||||
display.clearDisplay();
|
display.clearDisplay();
|
||||||
display.display();
|
display.display();
|
||||||
}
|
}
|
||||||
if (masterClockMode == 2) {
|
if (masterClockMode == 2 && tickCount > PULSE_LENGTH) {
|
||||||
calculateBPMTiming();
|
calculateBPMTiming();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -177,7 +178,7 @@ void clock() {
|
|||||||
|
|
||||||
//EXT-B
|
//EXT-B
|
||||||
if (masterClockMode == 2) {
|
if (masterClockMode == 2) {
|
||||||
if (tickCount == pulsePeriod && pulseCount < (PPQN-1)) {
|
if (tickCount >= pulsePeriod && pulseCount < (PPQN-1)) {
|
||||||
tickCount = 0;
|
tickCount = 0;
|
||||||
pulseCount++;
|
pulseCount++;
|
||||||
}
|
}
|
||||||
@ -220,8 +221,11 @@ void externalClock() {
|
|||||||
if (!isPlaying) {
|
if (!isPlaying) {
|
||||||
isPlaying = true;
|
isPlaying = true;
|
||||||
}
|
}
|
||||||
pulseCount = 0;
|
if ((newExtPulseTime - lastExtPulseTime) > 3000) { //3000ms is 1/4 at 20bpm
|
||||||
|
resetClocks();
|
||||||
|
}
|
||||||
tickCount = 0;
|
tickCount = 0;
|
||||||
|
pulseCount = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -410,9 +414,12 @@ void checkInputs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//play button
|
//play button
|
||||||
if (!digitalRead(START_STOP_BTN_PIN) && !playBtnPushed && masterClockMode == 0) {
|
if (!digitalRead(START_STOP_BTN_PIN) && !playBtnPushed) {
|
||||||
resetClocks();
|
if (masterClockMode == 0) {
|
||||||
isPlaying = !isPlaying;
|
calculateBPMTiming();
|
||||||
|
resetClocks();
|
||||||
|
isPlaying = !isPlaying;
|
||||||
|
}
|
||||||
playBtnPushed = true;
|
playBtnPushed = true;
|
||||||
saveState();
|
saveState();
|
||||||
updateScreen(); //to wake up the screen if turned off
|
updateScreen(); //to wake up the screen if turned off
|
||||||
|
|||||||
Reference in New Issue
Block a user