Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: AverageMCP3008 mbed-rtos mbed mcp3008
Fork of KIK01_Proto03 by
Diff: main.cpp
- Revision:
- 12:5b498285d121
- Parent:
- 11:7e11404adca0
- Child:
- 13:43a43da257e3
diff -r 7e11404adca0 -r 5b498285d121 main.cpp
--- a/main.cpp Tue Jun 06 12:25:19 2017 +0000
+++ b/main.cpp Tue Jun 06 15:31:41 2017 +0000
@@ -10,13 +10,14 @@
#include "rtos.h"
#define UART_TRACE (1)
+#define PIN_CHECK (1)
#define TITLE_STR1 ("KIK01 Kick Machine")
#define TITLE_STR2 ("20170606")
#define PI_F (3.1415926f)
#define SAMPLING_RATE (96000)
#define SAMPLING_PERIOD (1.0f/SAMPLING_RATE)
-#define UPDATE_RATE (32000)
+#define ENVELOPE_UPDATE_RATE (32000)
AnalogOut Dac1(PA_5);
@@ -34,6 +35,9 @@
AnalogIn Ain10(PC_5);
AnalogIn Ain11(PA_6);
+DigitalOut Dout0(PA_10);
+DigitalOut Dout1(PB_3);
+
class EnvelopeAR
{
public:
@@ -189,13 +193,20 @@
envelopeTicks++;
if (envelopeTicks >= envelopeLength) {
envelopeTicks = 0;
+ phi = PI_F / 2.0f;
}
}
void update()
{
+#if (PIN_CHECK)
+ Dout0 = 1;
+#endif
ticks++;
- if (ticks >= SAMPLING_RATE / UPDATE_RATE) {
+ if (ticks >= SAMPLING_RATE / ENVELOPE_UPDATE_RATE) {
+#if (PIN_CHECK)
+ Dout1 = 1;
+#endif
ticks = 0;
// set envelope parameters
@@ -216,14 +227,20 @@
envelopeFrequency.setReleaseTauRatio(frequencyParam.releaseTauRatio);
generateEnvelope();
+#if (PIN_CHECK)
+ Dout1 = 0;
+#endif
}
generateWave();
+#if (PIN_CHECK)
+ Dout0 = 0;
+#endif
}
void setParams()
{
bpm = Ain0.read() * 180.0f + 60.0f;
- envelopeLength = 60 * UPDATE_RATE / bpm;
+ envelopeLength = 60 * ENVELOPE_UPDATE_RATE / bpm;
amplitudeParam.attack = Ain1.read() * envelopeLength;
amplitudeParam.release = Ain2.read() * envelopeLength;
