シーケンサーのデータをSPIで送るテスト。UART出力停止

Dependencies:   Sequence mbed-rtos mbed Amp Envelope FilterController

Fork of SpiSequencerSender_Test by Ryo Od

Committer:
ryood
Date:
Thu Jun 23 09:41:18 2016 +0000
Revision:
6:fc10eac60b91
Parent:
5:4abac408b827
Child:
7:ed01846ee0a5
Callback????

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 6:fc10eac60b91 14 SpiSequenceSender sequenceSender(&spiMaster, D9, sequence, SEQUENCE_N, 5);
ryood 6:fc10eac60b91 15
ryood 6:fc10eac60b91 16 Envelope envelope(4095, 25, 20, 10, 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 6:fc10eac60b91 22 printf("%d\r\n", ticks);
ryood 6:fc10eac60b91 23 }
ryood 6:fc10eac60b91 24 } testClass;
ryood 0:21e39bc75e31 25
ryood 0:21e39bc75e31 26 int main()
ryood 0:21e39bc75e31 27 {
ryood 0:21e39bc75e31 28 spiMaster.format(8, 0);
ryood 0:21e39bc75e31 29 spiMaster.frequency(SPI_RATE);
ryood 0:21e39bc75e31 30
ryood 0:21e39bc75e31 31 // Test SequencerSender Run
ryood 0:21e39bc75e31 32 //
ryood 4:dd1582f2e5df 33 sequenceSender.setBpm(120);
ryood 0:21e39bc75e31 34 for (int i = 0; i < SEQUENCE_N; i++) {
ryood 0:21e39bc75e31 35 Sequence& seq = sequenceSender.getSequences()[i];
ryood 6:fc10eac60b91 36 seq.setPitch(i);
ryood 4:dd1582f2e5df 37 seq.setOctave(-1);
ryood 0:21e39bc75e31 38 seq.tie = true;
ryood 0:21e39bc75e31 39 }
ryood 0:21e39bc75e31 40
ryood 5:4abac408b827 41 sequence[3].setOctave(2);
ryood 5:4abac408b827 42 sequence[7].setOctave(1);
ryood 5:4abac408b827 43 sequence[11].setOctave(0);
ryood 5:4abac408b827 44 sequence[15].setOctave(1);
ryood 6:fc10eac60b91 45
ryood 6:fc10eac60b91 46 sequenceSender.attach(&testClass, &TestClass::callbackFunction);
ryood 0:21e39bc75e31 47
ryood 0:21e39bc75e31 48 sequenceSender.run(0);
ryood 5:4abac408b827 49
ryood 5:4abac408b827 50 for (;;) {
ryood 5:4abac408b827 51 sequenceSender.setPulseWidth(sequenceSender.getPulseWidth() + 4);
ryood 6:fc10eac60b91 52 Thread::wait(500);
ryood 6:fc10eac60b91 53 sequenceSender.setWaveShape(SpiSequenceSender::WAVESHAPE_SAW);
ryood 6:fc10eac60b91 54 Thread::wait(500);
ryood 6:fc10eac60b91 55 sequenceSender.setWaveShape(SpiSequenceSender::WAVESHAPE_SQUARE);
ryood 5:4abac408b827 56 }
ryood 0:21e39bc75e31 57 }