Nucleo Sequencer of my Base Machine

Dependencies:   Amp AverageAnalogIn Envelope FilterController Sequence BaseMachineComon mbed-rtos mbed

Fork of SpiSequenceSender_Test by Ryo Od

Committer:
ryood
Date:
Thu Jun 23 10:20:49 2016 +0000
Revision:
7:ed01846ee0a5
Parent:
6:fc10eac60b91
Child:
8:de409197ff95
Envelope???????UART???

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 0:21e39bc75e31 1 #include "mbed.h"
ryood 5:4abac408b827 2 #include "rtos.h"
ryood 0:21e39bc75e31 3
ryood 6:fc10eac60b91 4 #define UART_TRACE (0)
ryood 6:fc10eac60b91 5 #include "SpiSequenceSender.h"
ryood 6:fc10eac60b91 6 #include "Envelope.h"
ryood 0:21e39bc75e31 7
ryood 6:fc10eac60b91 8 #define SEQUENCE_N (16)
ryood 6:fc10eac60b91 9 #define SPI_RATE (8000000)
ryood 0:21e39bc75e31 10
ryood 0:21e39bc75e31 11 SPI spiMaster(SPI_MOSI, SPI_MISO, SPI_SCK);
ryood 0:21e39bc75e31 12
ryood 0:21e39bc75e31 13 Sequence sequence[SEQUENCE_N];
ryood 7:ed01846ee0a5 14 SpiSequenceSender sequenceSender(&spiMaster, D9, sequence, SEQUENCE_N, 10);
ryood 6:fc10eac60b91 15
ryood 7:ed01846ee0a5 16 Envelope envelope(4095, 10, 8, 4, 2047);
ryood 6:fc10eac60b91 17
ryood 6:fc10eac60b91 18 class TestClass {
ryood 6:fc10eac60b91 19 public:
ryood 6:fc10eac60b91 20 void callbackFunction(int ticks)
ryood 6:fc10eac60b91 21 {
ryood 7:ed01846ee0a5 22 if (ticks == 0) {
ryood 7:ed01846ee0a5 23 envelope.init();
ryood 7:ed01846ee0a5 24 }
ryood 7:ed01846ee0a5 25 uint16_t level = envelope.update();
ryood 7:ed01846ee0a5 26 printf("%d\r\n", level);
ryood 6:fc10eac60b91 27 }
ryood 6:fc10eac60b91 28 } testClass;
ryood 0:21e39bc75e31 29
ryood 0:21e39bc75e31 30 int main()
ryood 0:21e39bc75e31 31 {
ryood 0:21e39bc75e31 32 spiMaster.format(8, 0);
ryood 0:21e39bc75e31 33 spiMaster.frequency(SPI_RATE);
ryood 0:21e39bc75e31 34
ryood 0:21e39bc75e31 35 // Test SequencerSender Run
ryood 0:21e39bc75e31 36 //
ryood 4:dd1582f2e5df 37 sequenceSender.setBpm(120);
ryood 0:21e39bc75e31 38 for (int i = 0; i < SEQUENCE_N; i++) {
ryood 0:21e39bc75e31 39 Sequence& seq = sequenceSender.getSequences()[i];
ryood 6:fc10eac60b91 40 seq.setPitch(i);
ryood 4:dd1582f2e5df 41 seq.setOctave(-1);
ryood 0:21e39bc75e31 42 seq.tie = true;
ryood 0:21e39bc75e31 43 }
ryood 0:21e39bc75e31 44
ryood 5:4abac408b827 45 sequence[3].setOctave(2);
ryood 5:4abac408b827 46 sequence[7].setOctave(1);
ryood 5:4abac408b827 47 sequence[11].setOctave(0);
ryood 5:4abac408b827 48 sequence[15].setOctave(1);
ryood 6:fc10eac60b91 49
ryood 7:ed01846ee0a5 50 envelope.init();
ryood 7:ed01846ee0a5 51
ryood 6:fc10eac60b91 52 sequenceSender.attach(&testClass, &TestClass::callbackFunction);
ryood 0:21e39bc75e31 53 sequenceSender.run(0);
ryood 5:4abac408b827 54
ryood 5:4abac408b827 55 for (;;) {
ryood 5:4abac408b827 56 sequenceSender.setPulseWidth(sequenceSender.getPulseWidth() + 4);
ryood 6:fc10eac60b91 57 Thread::wait(500);
ryood 6:fc10eac60b91 58 sequenceSender.setWaveShape(SpiSequenceSender::WAVESHAPE_SAW);
ryood 6:fc10eac60b91 59 Thread::wait(500);
ryood 6:fc10eac60b91 60 sequenceSender.setWaveShape(SpiSequenceSender::WAVESHAPE_SQUARE);
ryood 5:4abac408b827 61 }
ryood 0:21e39bc75e31 62 }