NucleoF401RE MIDI - 10ch A/D, 6ch D/A, 6ch Triggers Controller for LittleBitsSynth in [http://nagasm.org/ASL/mbed3/] "MIDI_test_03" circuit - http://nagasm.org/ASL/mbed3/fig1/circuit2.jpg

Dependencies:   mbed

main.cpp

Committer:
nagasm
Date:
2014-12-21
Revision:
0:f6a989e8125b

File content as of revision 0:f6a989e8125b:

#include "mbed.h"
#include "MIDI_sub3.h"

int main(){
    int i, j, k, p;
    unsigned char adc_new;
    i = j = k = p = 0;
    rx_top = rx_end = tx_top = tx_end = adc_no = 0; 
    MIDI.baud(31250);
    MIDI.attach(&rx_fifoset, MIDI.RxIrq);
    LatchPulse.write(0x01F8);
    TriggerOut.write(0xF000);
    trigger_status = 0;
    for(i=0; i<6; i++) DAC_out(i,0);
    for(i=0; i<10; i++) adc_old[i] = 0;
    while(1){
        if(++p > 10000){
            p = 0;
            if(++adc_no > 9) adc_no = 0;
            adc_new = ADC_get(adc_no);
            if(adc_old[adc_no] != adc_new){
                adc_old[adc_no] = adc_new;
                tx_fifoset(0xBF);
                tx_fifoset(adc_no);
                tx_fifoset(adc_new);
            }
        }
        tx_fifo_check();
        if(rx_fifo_check() == 1){
            switch(midi_message>>20){
                case 0x0B:
                    if(((midi_message>>16) & 0x0F) == 0){
                        k = (midi_message>>8) & 0x7F;
                        if(k < 6){
                            DAC_out(k, (midi_message & 0x7F)<<1);
                        }
                    }
                    else if(((midi_message>>16) & 0x0F) == 1){
                        k = (midi_message>>8) & 0x7F;
                        if(k < 4){
                            Trigger_send(k, (midi_message & 0x7F));
                        }
                    }
                    break;
                case 0x0C:
                    tx_fifoset(midi_message>>16);
                    tx_fifoset((midi_message>>8) & 0x7F);
                    break;
            }         
        }
        if(++j > 1000000){
            j = 0;
            myled = !myled;
        }
    }
}