Nucleo Sequencer of my Base Machine
Dependencies: Amp AverageAnalogIn Envelope FilterController Sequence BaseMachineComon mbed-rtos mbed
Fork of SpiSequenceSender_Test by
main.cpp
- Committer:
- ryood
- Date:
- 2016-06-26
- Revision:
- 8:de409197ff95
- Parent:
- 7:ed01846ee0a5
- Child:
- 9:3e4e08578e1c
File content as of revision 8:de409197ff95:
#include "mbed.h" #include "rtos.h" #define UART_TRACE (0) #include "SpiSequenceSender.h" #include "Envelope.h" #define SEQUENCE_N (16) #define SPI_RATE (8000000) SPI spiMaster(SPI_MOSI, SPI_MISO, SPI_SCK); Sequence sequence[SEQUENCE_N]; SpiSequenceSender sequenceSender(&spiMaster, D9, sequence, SEQUENCE_N, 10); Envelope envelope(4095, 10, 8, 5, 2047); class TestClass { public: void callbackFunction(int ticks) { if (ticks == 0) { envelope.init(); } uint16_t level = envelope.update(); printf("m,%d\r\n", level); } } testClass; void callbackFunction(int ticks) { if (ticks == 0) { envelope.init(); } uint16_t level = envelope.update(); printf("g,%d\r\n", level); } int main() { spiMaster.format(8, 0); spiMaster.frequency(SPI_RATE); // Test SequencerSender Run // sequenceSender.setBpm(120); for (int i = 0; i < SEQUENCE_N; i++) { Sequence& seq = sequenceSender.getSequences()[i]; seq.setPitch(i); seq.setOctave(-1); seq.tie = true; } sequence[3].setOctave(2); sequence[7].setOctave(1); sequence[11].setOctave(0); sequence[15].setOctave(1); envelope.init(); sequenceSender.attachUpdate(&testClass, &TestClass::callbackFunction); //sequenceSender.attachUpdate(&callbackFunction); sequenceSender.run(0); for (;;) { sequenceSender.setPulseWidth(sequenceSender.getPulseWidth() + 4); Thread::wait(500); sequenceSender.setWaveShape(SpiSequenceSender::WAVESHAPE_SAW); Thread::wait(500); sequenceSender.setWaveShape(SpiSequenceSender::WAVESHAPE_SQUARE); } }