| @@ -300,6 +300,7 @@ void MIDIDeviceBase::write_packed(uint32_t data) | |||
| // use tx_buffer1 | |||
| tx_buffer1[tx1++] = data; | |||
| tx1_count = tx1; | |||
| __disable_irq(); | |||
| if (tx1 >= tx_max) { | |||
| queue_Data_Transfer(txpipe, tx_buffer1, tx_max*4, this); | |||
| } else { | |||
| @@ -308,12 +309,14 @@ void MIDIDeviceBase::write_packed(uint32_t data) | |||
| tx1_count = tx_max; | |||
| queue_Data_Transfer(txpipe, tx_buffer1, tx_max*4, this); | |||
| } | |||
| __enable_irq(); | |||
| return; | |||
| } | |||
| if (tx2 < tx_max) { | |||
| // use tx_buffer2 | |||
| tx_buffer2[tx2++] = data; | |||
| tx2_count = tx2; | |||
| __disable_irq(); | |||
| if (tx2 >= tx_max) { | |||
| queue_Data_Transfer(txpipe, tx_buffer2, tx_max*4, this); | |||
| } else { | |||
| @@ -322,6 +325,7 @@ void MIDIDeviceBase::write_packed(uint32_t data) | |||
| tx2_count = tx_max; | |||
| queue_Data_Transfer(txpipe, tx_buffer2, tx_max*4, this); | |||
| } | |||
| __enable_irq(); | |||
| return; | |||
| } | |||
| } | |||